在这种情况下请按照Post/Redirect/Get pattern流程。当服务器端验证失败时(result.hasErrors()
)不要重定向,但要再次显示索引页。 Spring将错误传递给模板。要显示错误,请使用支持Spring MVC的模板引擎的功能(例如,显示JSP中的所有错误 - <form:errors path="*" element="div" />
)。
@Controller
public class MyController {
@RequestMapping(value="/index.html", method=RequestMethod.GET)
public String display(@ModelAttribute MyForm myForm){
return "index";
}
@RequestMapping(value="/process.do", method=RequestMethod.POST)
public String processForm(@ModelAttribute @Validated MyForm myForm,
BindingResult result) {
if(result.hasErrors()){
return display(myForm);
}
return "redirect:/processed.html";
}
}