Spring 如何在重定向视图中传递绑定结果对象
我是spring新手,如果表单有错误,我会尝试重定向到同一页面。我成功地重定向了它,但问题是表单有一个动态下拉列表,当我返回一个模型对象时,不会呈现值。或者,当我执行ModelAndView(新建重定向视图(“查找”)时,我可以呈现下拉列表值,但无法显示错误消息 代码:jsp:lookup.jspSpring 如何在重定向视图中传递绑定结果对象,spring,jsp,jstl,Spring,Jsp,Jstl,我是spring新手,如果表单有错误,我会尝试重定向到同一页面。我成功地重定向了它,但问题是表单有一个动态下拉列表,当我返回一个模型对象时,不会呈现值。或者,当我执行ModelAndView(新建重定向视图(“查找”)时,我可以呈现下拉列表值,但无法显示错误消息 代码:jsp:lookup.jsp <form:form name="lookupForm" method="POST" action="search.html" enctype="multipart/form
<form:form name="lookupForm" method="POST" action="search.html" enctype="multipart/form-data" >
<div style= "color:red">
<form:errors path="empId" /></br>
<form:errors path="companyName" />
</div>
<form:label path="companyName">Company</form:label>
<select name= "companyList" path="companyName">
<option value="Select">Select</option>
<c:forEach var="element" items="${listCompany}">
<option value="${element.companyName}">${element.companyName}</option>
</c:forEach>
</select>
<form:label path="empId">Employee ID</form:label>
<form:textarea name="empId" path="empId" rows="5" cols="30"/>
<input type="submit" name="search" value="Search"/>
公司
选择
${element.companyName}
员工ID
控制器:
@RequestMapping(value = "/lookup", method = RequestMethod.GET)
public ModelAndView lookupFormView(ModelAndView model,BindingResult result) {
List<Employee> listCompany = employeeDAO.getCompany();
Employee newContact = new Employee();
model.addObject("listCompany", listCompany);
model.addObject("command", newContact);
model.setViewName("lookup");
return model;
}
@RequestMapping(value = "/search", params = "search", method = RequestMethod.POST)
public ModelAndView lookupEmployee(HttpServletRequest request,HttpServletResponse response, @ModelAttribute("command") Employee emp,BindingResult result) throws Exception{
empValidator.validate(emp, result);
String lookupEmpId = null;
if (result.hasErrors()) {
return new ModelAndView(new RedirectView("lookup"));
//return new ModelAndView("lookup");
}
else{
-----
@RequestMapping(value=“/lookup”,method=RequestMethod.GET)
公共模型和视图查找表单视图(模型和视图模型,BindingResult){
List listCompany=employeeDAO.getCompany();
Employee newContact=新员工();
model.addObject(“listCompany”,listCompany);
model.addObject(“命令”,newContact);
model.setViewName(“查找”);
收益模型;
}
@RequestMapping(value=“/search”,params=“search”,method=RequestMethod.POST)
公共ModelAndView lookupEmployee(HttpServletRequest请求、HttpServletResponse响应、@ModelAttribute(“命令”)Employee emp、BindingResult结果)引发异常{
emp验证程序。验证(emp,结果);
字符串lookupEmpId=null;
if(result.hasErrors()){
返回新的ModelAndView(新的重定向视图(“查找”);
//返回新的ModelAndView(“查找”);
}
否则{
-----
如果我使用这个returnnewmodelandview(newredirectview(“lookup”);它将重定向到lookup.jsp,呈现下拉值,但不会显示错误消息。
如果我使用这个返回newmodelandview(“lookup”);它重定向到lookup.jsp,则会显示错误,但不会呈现动态下拉列表值
请帮助我找出代码的哪一部分是错误的,或者它们是显示错误消息和呈现动态下拉值的一种方式只需返回视图名称并在模型本身中设置错误消息。只需在JSP中检查错误消息(如果找到),然后显示它 示例代码:
@RequestMapping(value = "/search", params = "search", method = RequestMethod.POST)
public String lookupEmployee(HttpServletRequest request,HttpServletResponse response,
@ModelAttribute("command") Employee emp,BindingResult result) throws Exception{
empValidator.validate(emp, result);
String lookupEmpId = null;
if (result.hasErrors()) {
emp.setErrorMessage("Your error message.");
return "lookup";
}else{
...
return "successPage";
}
}