在Spring 3 MVC中验证@RequestParam

时间:2011-07-30 13:03:11

标签: java spring validation data-binding spring-mvc

如何验证Spring @RequestParam以便它们在BindingResult中而不必使用某种POJO传输对象(@ModelAttribute)?

我可以使用MapBindingResult并将请求参数放入其中,但是我必须将该绑定结果放入模型中。

我可以使用org.springframework.validation.BindingResult.MODEL_KEY_PREFIX +名称。

是否有更好的方法来绑定和验证请求参数(而不是制作另一个POJO)?

1 个答案:

答案 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
}