在這種情況下請按照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";
}
}