2013-05-15 44 views
1

在spring mvc的请求参数上是否可以使用Bean验证注释,如@Past@Length弹簧mvc控制器上的jsr-303注释参数

我想这样做:

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

回答

0

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

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

+0

我使用'@ Validated'注解工作。我知道创建一个模型类可以工作,但是我发现对于一个单独的属性有一点开销。 – Laures

+0

酷,我没有见过@Validated之前。我阅读了你链接到的博客文章,看起来非常有用。感谢张贴的链接。 – sdouglass