不使用注释的类级别验证
创始人
2025-01-07 03:00:20
0

使用Hibernate Validator自定义类级别验证,而无需使用注释。

示例代码:

public class User {

  private String name;

  @Valid
  private Address address;

  // getters and setters
}

public class Address {

  private String street1;

  private String street2;

  private String city;

  private String state;

  private String zipCode;

  // getters and setters
}

public class UserValidator implements ConstraintValidator {

  @Override
  public boolean isValid(User user, ConstraintValidatorContext context) {

    // check if user name is not empty
    if (StringUtils.isBlank(user.getName())) {
      context.buildConstraintViolationWithTemplate("User name cannot be blank")
        .addPropertyNode("name")
        .addConstraintViolation();
      return false;
    }

    // check if user address is valid
    if (user.getAddress() != null) {
      ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
      Validator validator = factory.getValidator();

      Set> constraintViolations = validator.validate(user.getAddress());
      if (!constraintViolations.isEmpty()) {
        for (ConstraintViolation
violation : constraintViolations) { context.buildConstraintViolationWithTemplate(violation.getMessage()) .addPropertyNode("address." + violation.getPropertyPath().toString()) .addConstraintViolation(); } return false; } } return true; } }

该代码使用ConstraintValidator接口自定义了isValid方法,实现了类级别验证。在示例中,使用了StringUtilsValidation类和它们的方法。isValid方法检查了用户姓名是否为空值,还验证了用户地址是否有效。如果验证失败,则在ConstraintValidatorContext对象中添加验证约束违规。在User类中,使用了@ValidUser注释来指定类级别验证。

注意:在META-INF/validation.xml文件中添加以下内容启用类级别验证。


  com.example.myapp
  com.example.myapp.User
  
    com.example.myapp.UserValidator
  

相关内容

热门资讯

透视教学!wpk透视工作室,w... 透视教学!wpk透视工作室,wpk模拟器多开,我来教教你(有挂规律)1、首先打开wpk模拟器多开最新...
透视辅助!wpk有那种辅助吗,... 透视辅助!wpk有那种辅助吗,wpk有作弊吗,安装教程(有挂方法)运wpk有那种辅助吗辅助工具,进入...
透视有挂!wpk免费辅助,wp... 透视有挂!wpk免费辅助,wpk真吗,切实教程(有挂解密)1、完成wpk免费辅助的残局,帮助玩家取得...
透视工具!wpk模拟器是什么,... 透视工具!wpk模拟器是什么,wpk透视是真的吗,力荐教程(有挂解密)小薇(透视辅助)致您一封信;亲...
透视计算!wpk俱乐部辅助器,... 透视计算!wpk俱乐部辅助器,wpk私人局有透视吗,辅助教程(有挂详情);一、wpk私人局有透视吗A...
透视最新!wpk安卓下载辅助,... 透视最新!wpk安卓下载辅助,wpk真吗,分享教程(有挂解说)1、下载好wpk安卓下载辅助辅助软件之...
透视规律!wpk刷入池率脚本,... 透视规律!wpk刷入池率脚本,wpk俱乐部怎么作弊,AI教程(有挂细节)1、wpk俱乐部怎么作弊系统...
透视软件!wpk辅助购买,wp... 透视软件!wpk辅助购买,wpk私人局有透视吗,存在挂教程(有挂插件);进入游戏-大厅左侧-新手福利...
透视中牌率!wpk有辅助器吗,... 透视中牌率!wpk有辅助器吗,wpk辅助,解说技巧(有挂方法)1、用户打开应用后不用登录就可以直接使...
透视辅助!wpk有那种辅助吗,... 透视辅助!wpk有那种辅助吗,如何下载wpk透视版,2025新版教程(有挂详情)1、进入游戏-大厅左...