如何验证Spring @RequestParam以便它们在BindingResult中而不必使用某种POJO传输对象(@ModelAttribute)?
我可以使用MapBindingResult并将请求参数放入其中,但是我必须将该绑定结果放入模型中。
我可以使用org.springframework.validation.BindingResult.MODEL_KEY_PREFIX +名称。
是否有更好的方法来绑定和验证请求参数(而不是制作另一个POJO)?
答案 0 :(得分:0)
如果您使用的是Spring MVC 3.0或更高版本,则可以使用declarative validation support Spring提供的功能。然后,您将在模型bean上声明验证限制,并将@Valid
注释添加到表单支持bean,如参考文档中的"Spring Validation"一章所述。
如果在验证bean后直接添加BindingResult
参数,则可以检查控制器中的验证错误:
// .. in the bean class
public class MyBean {
@NotNull
private String name;
// ..
}
// .. in the @Controller
public ModelAndView doSomething(@Valid MyBean data, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
// back to form
}
// do something with the bean
}