从@Valid 验证中排除某些字段

exclude some fields from @Valid validation

我使用 Spring 的 @Valid 注释来验证用 javax.constraints 注释注释的 bean 字段。

但是当我需要从验证中排除某些字段时遇到问题(仅适用于某些情况)。

我做了调查,没有找到任何有用的方法,而且大多数答案的日期是 2010-2011 年。这种情况如此普遍,真是令人惊讶。

Spring 4.+ 与那个时代相比有什么变化吗?或者也许任何人都可以分享个人经验如何打败这个?

谢谢。

您可以使用验证组和 @Validated 注释。

http://www.javacodegeeks.com/2014/08/validation-groups-in-spring-mvc.html

里面有详细的解释

该方法基于 hibernate validator's groups,它使您能够根据标记接口对验证进行分组并将其应用于处理程序级别,如 link

中给出的示例
@RequestMapping(value = "stepTwo", method = RequestMethod.POST)
public String stepTwo(@Validated(Account.ValidationStepTwo.class) Account account, Errors errors) {
  if (errors.hasErrors()) {
      return VIEW_STEP_TWO;
  }
  return "redirect:summary";
}