1

Is it possible to use Bean Validation annotations like @Past or @Length on Request Parameters in spring mvc?

I would like to do something like:

@RequestMapping(method = RequestMethod.POST)
public RedirectView initiateSignup(@RequestParam @Valid @Past Date birthdate, BindingResult birthdateResult,
        HttpServletResponse httpServletResponse) throws HttpMediaTypeNotAcceptableException {
4

2 回答 2

1

我在博客文章的帮助下使它工作:

http://blog.codeleak.pl/2012/03/how-to-method-level-validation-in.html

一个额外的注释和一个 bean 后处理器是必要的,但现在它可以工作了。

于 2013-05-16T14:44:02.150 回答
0

我不认为这是可能的。您可以应用@Valid,但不能应用@Past。您可以改为创建一个模型类,其中包含与您的请求参数对应的字段,并将 JSR-303 注释放在类的字段上。然后,您可以使用该类作为控制器方法参数类型,并在其上使用 @Valid,Spring 应该适当地验证它。

http://static.springsource.org/spring/docs/3.2.x/spring-framework-reference/html/validation.html#validation-mvc-jsr303

于 2013-05-16T00:04:30.763 回答