简体   繁体   中英

How to redirect from one jsp to another jsp in Spring MVC when it satisfies the condition of another variable

Working on Spring MVC where i want to redirect a page from one JSP to another when the condition satisfies.

  1. If the column experience is greater than 3 then it has to redirect to the another JSP page(Current JSP page: addEmployee to insureEmployee JSP page)
  2. When the value is lesser than 3 then it has to normally store the data to the database.
  3. I have 2 tables...So when the experience is more than 3 years then it has to redirect to the new JSP and once i submit the data must be stored in the database(Secondary table) or else when experience is lesser than 3 then it has to save to the Primary table database
  4. I just want to redirect to another JSP when i enter value more than 3 in the experience column
  5. I have posted my Controller class and JSP codes

Controller of Employee 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.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 file which has to be redirected:

<%@ 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 file (which gets redirect to this page):

<%@ 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>

What you can do is

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

You will need to redirect to either to the same page or any other because, of the method return type.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM