2017-11-22 5 views
0

조건이 충족 될 때 한 JSP에서 다른 JSP로 페이지를 리디렉션하려는 Spring MVC에서 작업합니다.다른 변수의 조건을 만족할 때 Spring MVC의 한 jsp에서 다른 JSP로 리디렉션하는 방법

  1. 열 경험은보다 큰 3입니다 그것은 다른 JSP 페이지로 리디렉션하는 경우 (현재 JSP 페이지 : insureEmployee JSP 페이지로 addEmployee)
  2. 이 값이 다음 정상에가 3보다 더 적은이다 데이터를 데이터베이스에 저장하십시오.
  3. 나는 2 개의 테이블을 가지고있다 ... 그래서 경험이 3 년 이상이되면 새로운 JSP로 리다이렉트해야하고 일단 데이터가 데이터베이스 (보조 테이블)에 저장되어야하거나 경험이 적을 때 제출해야한다. 3 다음은
  4. 난 그냥 내가 경험 열에 값 3 개 이상 입력 할 때 다른 JSP로 리디렉션 할 기본 테이블을 데이터베이스에 저장하는 것보다
  5. 내 컨트롤러 클래스와 JSP 코드를 게시 한

직원 등급의 컨트롤러 :

package com.dineshonjava.controller; 
    import java.util.ArrayList; 
    import java.util.HashMap; 
    import java.util.List; 
    import java.util.Map; 
    import javax.validation.Valid; 
    import org.springframework.beans.factory.annotation.Autowired; 
    import org.springframework.stereotype.Controller; 
    import org.springframework.validation.BindingResult; 
    import org.springframework.web.bind.annotation.ModelAttribute; 
    import org.springframework.web.bind.annotation.RequestMapping; 
    import org.springframework.web.bind.annotation.RequestMethod; 
    import org.springframework.web.servlet.ModelAndView; 
    import com.dineshonjava.bean.EmployeeBean; 
    import com.dineshonjava.model.Employee; 
    import com.dineshonjava.service.EmployeeService; 
    @Controller 
    public class EmployeeController { 
    @Autowired 
    private EmployeeService employeeService; 
    @RequestMapping(value = "/save", method = RequestMethod.POST) 
    public ModelAndView saveEmployee(@Valid @ModelAttribute("command") EmployeeBean employeeBean, 
       BindingResult result) { 
    if(result.hasErrors()){ 

       return new ModelAndView("addEmployee"); 
      } 

      Employee employee = prepareModel(employeeBean); 
      employeeService.addEmployee(employee); 
      Map<String, Object> model = new HashMap<String, Object>(); 
      model.put("employees", prepareListofBean(employeeService.listEmployeess())); 
      return new ModelAndView("displayEmployee",model); 
      } 
     @RequestMapping(value = "/saved", method = RequestMethod.POST) 
     public ModelAndView savedEmployee(@Valid @ModelAttribute("command") EmployeeBean employeeBean, 
       BindingResult result) { 
    if(result.hasErrors()){ 

       return new ModelAndView("addEmployee"); 
      } 
      Employee employee = prepareModel(employeeBean); 
      employeeService.addEmployee(employee); 
      Map<String, Object> model = new HashMap<String, Object>(); 
      model.put("employees", prepareListofBean(employeeService.listEmployeess())); 
      return new ModelAndView("displayEmployee",model); 
     } 
     @RequestMapping(value="/employees", method = RequestMethod.GET) 
     public ModelAndView listEmployees() { 
      Map<String, Object> model = new HashMap<String, Object>(); 
      model.put("employees", prepareListofBean(employeeService.listEmployeess())); 
      return new ModelAndView("employeesList", model); 
     } 

     @RequestMapping(value = "/add", method = RequestMethod.GET) 
     public ModelAndView addEmployee(@Valid @ModelAttribute("command") EmployeeBean employeeBean, 
       BindingResult result) { 
    if(result.hasErrors()){ 

       return new ModelAndView("addEmployee"); 
      } 
      Map<String, Object> model = new HashMap<String, Object>(); 
      model.put("employees", prepareListofBean(employeeService.listEmployeess())); 
      return new ModelAndView("addEmployee", model); 
     } 

     @RequestMapping(value = "/index", method = RequestMethod.GET) 
     public ModelAndView welcome() { 
      return new ModelAndView("index"); 
     } 

     @RequestMapping(value = "/sub", method = RequestMethod.GET) 
     public ModelAndView Edit() { 
      return new ModelAndView("displayEmployee"); 
     } 

     @RequestMapping(value = "/delete", method = RequestMethod.GET) 
     public ModelAndView editEmployee(@ModelAttribute("command") EmployeeBean employeeBean, 
       BindingResult result) { 
      employeeService.deleteEmployee(prepareModel(employeeBean)); 
      Map<String, Object> model = new HashMap<String, Object>(); 
      model.put("employee", null); 
      model.put("employees", prepareListofBean(employeeService.listEmployeess())); 
      return new ModelAndView("displayEmployee", model); 
     } 

     @RequestMapping(value = "/edit", method = RequestMethod.GET) 
     public ModelAndView deleteEmployee(@Valid @ModelAttribute("command") EmployeeBean employeeBean, 
       BindingResult result) { 
      if(result.hasErrors()){ 
       Map<String, Object> model = new HashMap<String, Object>(); 
       model.put("employee", prepareEmployeeBean(employeeService.getEmployee(employeeBean.getId()))); 
        model.put("employees", prepareListofBean(employeeService.listEmployeess())); 
       return new ModelAndView("editEmployee", model); 
      } 
      Map<String, Object> model = new HashMap<String, Object>(); 
      model.put("employee", prepareEmployeeBean(employeeService.getEmployee(employeeBean.getId()))); 
      model.put("employees", prepareListofBean(employeeService.listEmployeess())); 
      return new ModelAndView("displayEmployee", model); 
     } 

     private Employee prepareModel(EmployeeBean employeeBean){ 
      Employee employee = new Employee(); 
      employee.setAddress(employeeBean.getAddress()); 
      employee.setAge(employeeBean.getAge()); 
      employee.setName(employeeBean.getName()); 
      employee.setSalary(employeeBean.getSalary()); 
      employee.setId(employeeBean.getId()); 
      employee.setBae(employeeBean.getBae()); 
      employee.setExperience(employeeBean.getExperience()); 
      employee.setEmail(employeeBean.getEmail()); 
      employee.setPassword(employeeBean.getPassword()); 

      employeeBean.setId(null); 
      return employee; 
     } 
     private List<EmployeeBean> prepareListofBean(List<Employee> employees){ 
      List<EmployeeBean> beans = null; 
      if(employees != null && !employees.isEmpty()){ 
       beans = new ArrayList<EmployeeBean>(); 
       EmployeeBean bean = null; 
       for(Employee employee : employees){ 
        bean = new EmployeeBean(); 
        bean.setName(employee.getName()); 
        bean.setId(employee.getId()); 
        bean.setAddress(employee.getAddress()); 
        bean.setSalary(employee.getSalary()); 
        bean.setAge(employee.getAge()); 
        bean.setBae(employee.getBae()); 
        bean.setExperience(employee.getExperience()); 
        bean.setEmail(employee.getEmail()); 
        bean.setPassword(employee.getPassword()); 

        beans.add(bean); 
       } 
      } 
      return beans; 
     } 
     private EmployeeBean prepareEmployeeBean(Employee employee){ 
      EmployeeBean bean = new EmployeeBean(); 
      bean.setAddress(employee.getAddress()); 
      bean.setAge(employee.getAge()); 
      bean.setName(employee.getName()); 
      bean.setSalary(employee.getSalary()); 
      bean.setId(employee.getId()); 
      bean.setBae(employee.getBae()); 
      bean.setExperience(employee.getExperience()); 
      bean.setEmail(employee.getEmail()); 
      bean.setPassword(employee.getPassword()); 

      return bean; 
     } 
    } 





Controller of Worker Class: 
,
package com.dineshonjava.controller; 
import java.util.ArrayList; 
import java.util.HashMap; 
import java.util.List; 
import java.util.Map; 
import javax.validation.Valid; 
import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.stereotype.Controller; 
import org.springframework.validation.BindingResult; 
import org.springframework.web.bind.annotation.ModelAttribute; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.RequestMethod; 
import org.springframework.web.servlet.ModelAndView; import com.dineshonjava.bean.WorkerBean; 
import com.dineshonjava.model.Worker; 
import com.dineshonjava.service.WorkerService; 
@Controller 
public class WorkerController { 
@Autowired 
private WorkerService workService; 
@RequestMapping(value = "/", method = RequestMethod.POST) 
public ModelAndView saveWorker(@Valid @ModelAttribute("command") WorkerBean workBean, 
      BindingResult result) { 
if(result.hasErrors()){ 

      return new ModelAndView(""); 
     } 

     Worker work = prepareModel(workBean); 
     workService.addWorker(work); 
     Map<String, Object> model = new HashMap<String, Object>(); 
     model.put("works", prepareListofBean(workService.listWorkers())); 
     return new ModelAndView("",model); 
     } 

@RequestMapping(value = "/added", method = RequestMethod.GET) 
public ModelAndView added() { 
    return new ModelAndView("insureEmployee"); 
} 
@RequestMapping(value = "/", method = RequestMethod.POST) 
    public ModelAndView savedWorker(@Valid @ModelAttribute("command") WorkerBean workBean, 
      BindingResult result) { 
if(result.hasErrors()){ 

      return new ModelAndView(""); 
     } 
     Worker work = prepareModel(workBean); 
     workService.addWorker(work); 
     Map<String, Object> model = new HashMap<String, Object>(); 
     model.put("works", prepareListofBean(workService.listWorkers())); 
     return new ModelAndView("",model); 
    } 
    @RequestMapping(value="/", method = RequestMethod.GET) 
    public ModelAndView listWorker() { 
     Map<String, Object> model = new HashMap<String, Object>(); 
     model.put("works", prepareListofBean(workService.listWorkers())); 
     return new ModelAndView("", model); 
    } 

    @RequestMapping(value = "/insure", method = RequestMethod.GET) 
    public ModelAndView addWorker(@Valid @ModelAttribute("command") WorkerBean workBean, 
      BindingResult result) { 
if(result.hasErrors()){ 

      return new ModelAndView("insureEmployee"); 
     } 
     Map<String, Object> model = new HashMap<String, Object>(); 
     model.put("works", prepareListofBean(workService.listWorkers())); 
     return new ModelAndView("insureEmployee", model); 
    } 

    @RequestMapping(value = "/", method = RequestMethod.GET) 
    public ModelAndView editEmployee(@ModelAttribute("command") WorkerBean workBean, 
      BindingResult result) { 
     workService.deleteWorker(prepareModel(workBean)); 
     Map<String, Object> model = new HashMap<String, Object>(); 
     model.put("work", null); 
     model.put("works", prepareListofBean(workService.listWorkers())); 
     return new ModelAndView("", model); 
    } 

    @RequestMapping(value = "/", method = RequestMethod.GET) 
    public ModelAndView deleteWork(@Valid @ModelAttribute("command") Worker workBean, 
      BindingResult result) { 
     if(result.hasErrors()){ 
      Map<String, Object> model = new HashMap<String, Object>(); 
      model.put("work", prepareWorkerBean(workService.getWorker(workBean.getId()))); 
      model.put("works", prepareListofBean(workService.listWorkers())); 
      return new ModelAndView("", model); 
     } 
     Map<String, Object> model = new HashMap<String, Object>(); 
     model.put("work", prepareWorkerBean(workService.getWorker(workBean.getId()))); 
     model.put("works", prepareListofBean(workService.listWorkers())); 
     return new ModelAndView("", model); 
    } 

    private Worker prepareModel(WorkerBean workBean){ 
     Worker work = new Worker(); 
     work.setPhone(workBean.getPhone()); 
     work.setAccno(workBean.getAccno()); 
     work.setId(workBean.getId()); 
     workBean.setId(null); 
     return work; 
    } 
    private List<WorkerBean> prepareListofBean(List<Worker> work){ 
     List<WorkerBean> beans = null; 
     if(work != null && !work.isEmpty()){ 
      beans = new ArrayList<WorkerBean>(); 
      WorkerBean bean = null; 
      for(Worker worker : work){ 
       bean = new WorkerBean(); 

       bean.setId(worker.getId()); 
       bean.setPhone(worker.getPhone()); 
       bean.setAccno(worker.getAccno()); 

       beans.add(bean); 
      } 
     } 
     return beans; 
    } 

    private WorkerBean prepareWorkerBean(Worker work){ 
     WorkerBean bean = new WorkerBean(); 

     bean.setId(work.getId()); 
     bean.setPhone(work.getPhone()); 
     bean.setAccno(work.getAccno()); 

     return bean; 
    } 
} 
리디렉션하는

addEmployee JSP 파일 :

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
    pageEncoding="ISO-8859-1"%> 
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%> 
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%> 

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Spring MVC Form Handling</title> 
</head> 
<style> 
.error { 
    color: red; 
    font-weight: bold; 
} 
</style> 
<body> 
    <h2>Add Employee Data</h2> 
    <form:form method="POST" action="/sdnext/save.html"> 
     <table> 
      <tr> 
       <td align="left" width="20%">EmployeeID:</td> 
       <td align="left" width="40%"><form:input path="id" 
         readonly="true" size="30" /></td> 
      </tr> 
      <tr> 
       <td align="left" width="20%">Name:</td> 
       <td align="left" width="40%"><form:input path="name" size="30" /></td> 
       <td><form:errors path="name" cssClass="error" /></td> 
      </tr> 
      <tr> 
       <td align="left" width="20%">Age:</td> 
       <td align="left" width="40%"><form:input path="age" size="30" /></td> 
       <td align="left"><form:errors path="age" cssClass="error" /></td> 
      </tr> 
      <tr> 
       <td align="left" width="20%">salary:</td> 
       <td align="left" width="40%"><form:input path="salary" 
         size="30" /></td> 
       <td align="left"><form:errors path="salary" cssClass="error" /></td> 
      </tr> 
      <tr> 
       <td align="left" width="20%">Address:</td> 
       <td align="left" width="40%"><form:input path="address" 
         size="30" /></td> 
       <td><form:errors path="address" cssClass="error" /></td> 
      </tr> 
      <tr> 
       <td align="left" width="20%">Bae:</td> 
       <td align="left" width="40%"><form:input path="bae" size="30" /></td> 
       <td><form:errors path="bae" cssClass="error" /></td> 
      </tr> 
      <tr> 
       <td align="left" width="20%">Experience:</td> 
       <td align="left" width="40%"><form:input path="experience" id="experience" 
         size="30" onblur="checkExperience()"/></td> 
       <td><form:errors path="experience" cssClass="error" /></td> 
      </tr> 
      <tr> 
       <td align="left" width="20%">Email:</td> 
       <td align="left" width="40%"><form:input path="email" size="30" /></td> 
       <td><form:errors path="email" cssClass="error" /></td> 
      </tr> 
      <tr> 
       <td>Password:</td> 
       <td><form:password path="password" size="30" /></td> 
       <td><form:errors path="password" cssClass="error" /></td> 
      </tr> 
      <tr> 
       <td colspan="2"><input type="submit" value="Submit" /></td> 
      </tr> 
      </table> 


    </form:form> 
</body> 
</html> 

insureEmployee JSP 파일 (이 페이지로 리디렉션 얻을 수있는) :

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
    pageEncoding="ISO-8859-1"%> 


<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Insert title here</title> 
</head> 
<body> 
<form:form method="POST" action="/sdnext/insure.html" > 
       <table> <tr> 
      <tr> 
       <td align="left" width="20%">Phone:</td> 
       <td align="left" width="40%"><form:input path="phone" size="30" /></td> 
       <td><form:errors path="phone" cssClass="error" /></td> 
      </tr> 
      <tr> 
       <td>Account Number:</td> 
       <td><form:password path="accno" size="30" /></td> 
       <td><form:errors path="accno" cssClass="error" /></td> 
      </tr> 
      <tr> 
      <td> <input type="submit" value="Submit"/></td> 
      </tr> 
      </table> 

</form:form> 
</body> 
</html> 


InsureEmployee where redirected page comes here: 
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
    pageEncoding="ISO-8859-1"%> 


<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Insert title here</title> 
</head> 
<body> 
<form:form method="POST" action="/sdnext/insure.html" > 
       <table> <tr> 
      <tr> 
       <td align="left" width="20%">Phone:</td> 
       <td align="left" width="40%"><form:input path="phone" size="30" /></td> 
       <td><form:errors path="phone" cssClass="error" /></td> 
      </tr> 
      <tr> 
       <td>Account Number:</td> 
       <td><form:password path="accno" size="30" /></td> 
       <td><form:errors path="accno" cssClass="error" /></td> 
      </tr> 
      <tr> 
      <td> <input type="submit" value="Submit"/></td> 
      </tr> 
      </table> 

</form:form> 
</body> 
</html> 
+0

너무 많은 코드입니다. ** 관련 ** 코드 및 관련 HTML (** HTML ** 렌더링 된 ** HTML **이 아니라 생성하는 코드)을 게시하여 앞서 언급 한 귀하의 현재 평가에 대한 문제점을 입증하십시오. 조건/논리를 통해 문제가 무엇인지 알 수 있습니다. [** 최소, 완전하고 검증 가능한 예제를 만드는 방법 **] (https://stackoverflow.com/help/mcve)를 참조하십시오. – Nope

+0

return 문 앞에 조건을 확인할 수 있지만 두 번의 리디렉션이 필요합니다 하나는 3보다 크고 다른 하나는 3보다 작습니다. –

+0

저는 여러분이 돌아 오기 위해 단순히 다른 견해를 선택한다는 것을 이해하는 것이 중요하다고 생각합니다. 리디렉션은 다른 것을 암시합니다. –

답변

1

은 무엇 당신이 할 수있는 것은

if(variable > 3){ 
    return new ModelAndView("return to greater than 3 page"); 
}else{ 
return new ModelAndView("return to same page"); 
} 

리턴 유형의 메소드로 인해 같은 페이지 또는 다른 페이지로 리디렉션해야합니다.

+0

Javascript 나 다른 것을 사용하여 JSP 페이지에서 편집 할 수있는 가능성이 있습니까? 컨트롤러에서 사용할 수 있습니까? :-( – Ajay

+0

의미가 없다는 의미는 무엇입니까? –

+0

두 개의 JSP 파일이 있다면 ... hi.jsp와 hello.jsp..In 안녕 3 열 ... (id , 이름, 경험) .3 이상으로 경험치를 주면 hello.jsp 페이지로 리다이렉트해야한다. 그렇지 않으면 3보다 작은 값을 주면 데이터를 데이터베이스에 정상적으로 저장해야한다. 당신에게 이해가 안되면 죄송합니다 – Ajay