Java Spring——验证单个对象字段

标签 java spring validation

通过将对象绑定(bind)到表单并在验证 Controller 方法中为对象使用 @Valid 符号,验证对象中的所有字段非常简单。

假设我有一个只允许用户更新某些字段的更新屏幕。是否有办法避免手动验证?

谢谢!

最佳答案

要针对验证规则的子集进行验证,您可以将验证组的 spring 功能与 @Validated 一起使用

您必须为您的 bean 或类似于此的表单模型定义一组组

public class Form {

  public interface Group1 { /*empty interface*/ };

  public interface Group2 { /*empty interface*/ };

  @NotEmpty(groups = { Group1.class }) // associate constraints
  private String field1;               // to a validation group 

  @NotEmpty(groups = { Group2.class })
  private String field2;

}

在你的 Controller 中,你可以像这样使用注解

@Controller
public class FormController {

  @RequestMapping(value = "/validate1", method = RequestMethod.POST)
  public String updateGroup1(@Validated(Form.Group1.class) Form form, Errors errors) {
    if (errors.hasErrors()) {
      // return to the same view
    }
    // return success
  }

}

你可以在这里找到一个很好的例子

https://narmo7.wordpress.com/2014/04/26/how-to-set-up-validation-group-in-springmvc/

关于Java Spring——验证单个对象字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43903211/

相关文章:

C# XML 未正确验证 XmlReaderSettings 中的架构

java - 基于 Jenkins 的 Gradle 构建失败

java - 仅当 bean 作为方法参数存在时,Spring 才会 Autowiring

java - 避免在 Spring Boot 应用程序中向 Sentry 报告 Broken Pipe 错误

Spring Boot - 在 Hibernate 中使用 JPA 存储库

regex - 如何编写正则表达式以仅匹配数字,字母和破折号?

c# - 令人困惑的数据注释验证

具有相同名称的 Java 枚举和字段

java - 找不到 KeyStore 的 DB2 DataSource 属性

java - 如何记忆一个函数,Eratosthenes 筛法