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


问题内容

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

但是,当我需要从验证中排除某些字段时(仅在某些情况下),我遇到了一个问题。

我进行的一项调查没有找到任何有用的方法,大多数答案的日期都定为2010-2011。令人惊讶的是,这种情况如此普遍。

从那时开始,Spring 4. +有什么变化吗?或者,也许任何人都可以分享个人经验如何克服这一点?

谢谢。


问题答案:

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

http://www.javacodegeeks.com/2014/08/validation-groups-in-spring-
mvc.html中
有详细说明

该方法基于hibernate验证器的组,它使您可以基于标记器接口对验证进行分组,并将其应用于处理程序级别,如链接中给出的示例

@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";
}