如何为@Valid指定验证组?

9 浏览
0 Comments

如何为@Valid指定验证组?

在@Controller @RequestMapping方法中,我使用了两个参数:

@ModelAttribute("myCandidate") @Valid Candidate myCandidate,
BindingResult result

我该如何明确指定myCandidate的验证组?

0
0 Comments

问题的原因是标准的Java注释@Valid不支持分组。然而,Spring现在包含一个@Validated注释,它与@Valid具有相同的功能,但允许您指定要在验证中使用的分组。

解决方法是在注释中使用@Validated而不是@Valid。例如:

@Validated(UpdateGroup.class) Candidate myCandidate

需要注意的是,这个注释只在Spring 3.1及更高版本中可用。另外,@Validated不适用于字段。

当我使用@Validated时,像@NotNull这样的注释会被忽略,而这些注释在使用@Valid时会被验证。它们在从REST控制器中使用时显然不会表现相同。

0