我是 Spring 新手,需要一些指导。我已经阅读了 Spring 教程,但找不到我想要的东西。我想知道处理这种情况的最佳方法是什么:
- 用户转到索引页面并显示一个表单。
- 用户填写表格并提交到新的 URL(通过客户端验证)
- 在表单对象的 Spring 验证期间,它检测到错误
- 将用户重定向回索引页面,突出显示受影响的字段
我假设这是这种情况的正确流程。如果没有,请告诉我否则。如果这是正确的流程,我如何将绑定/验证错误传递给模板?
我是 Spring 新手,需要一些指导。我已经阅读了 Spring 教程,但找不到我想要的东西。我想知道处理这种情况的最佳方法是什么:
我假设这是这种情况的正确流程。如果没有,请告诉我否则。如果这是正确的流程,我如何将绑定/验证错误传递给模板?
在这种情况下,请遵循Post/Redirect/Get 模式流程。当服务器端验证失败时 ( 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";
}
}