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

fas*_*sth 9 java spring annotations spring-mvc java-ee

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

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

我做了调查没有找到任何有用的方法,大多数答案的日期为2010-2011.令人惊讶的是,这种情况非常普遍.

春季4. +的时间有变化吗?或者也许任何人都可以分享个人经验如何打败这个?

谢谢.

Mas*_*ave 9

您可以使用验证组和 @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";
}
Run Code Online (Sandbox Code Playgroud)