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

标签 java spring spring-mvc jakarta-ee annotations

我使用 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它使您能够根据标记界面对验证进行分组并将其应用于处理程序级别,例如链接中给出的示例

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

关于java - 从@Valid 验证中排除某些字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29798346/

相关文章:

java - 在 CardLayout 中重绘字符串

java - 如果使用 try{}catch{} 捕获错误,代码是否会继续执行

java - 多对一单向关系的条件查询

java - classcastexception : cant be cast to com. sun.jersey.spi.container.servlet.ServletContainer

java - 实现 Spring Controller 的单元测试时缺少依赖项 hasSize() 和 hasProperty()

java - 如何编写正则表达式来匹配java中的模式?

java - Alfresco 上下文初始化失败 : NoClassDefFoundError

java - Spring Integration - 在应用程序代码中调用方法

javascript - spring Controller 无法从 $http Angular 检索数据

spring-mvc - 在 Spring 中使用 HTML5 Websocket