自定义Validator校验

定义校验注解


@Target({METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER})
@Retention(RUNTIME)
@Documented
@Constraint(validatedBy = {EnumValueValidator.class})
public @interface EnumValue {// 默认错误消息String message() default "必须为指定值";String[] strValues() default {};int[] intValues() default {};long[] longValues() default {};// 分组Class<?>[] groups() default {};// 负载Class<? extends Payload>[] payload() default {};// 指定多个时使用@Target({FIELD, METHOD, PARAMETER, ANNOTATION_TYPE})@Retention(RUNTIME)@Documented@interface List {EnumValue[] value();}
}

定义校验器

public class EnumValueValidator implements ConstraintValidator<EnumValue, Object> {private String[] strValues;private int[] intValues;private long[] longValues;@Overridepublic void initialize(EnumValue constraintAnnotation) {strValues = constraintAnnotation.strValues();intValues = constraintAnnotation.intValues();longValues = constraintAnnotation.longValues();}@Overridepublic boolean isValid(Object value, ConstraintValidatorContext context) {if (value instanceof String) {for (String s : strValues) {if (s.equals(value)) {return true;}}} else if (value instanceof Integer) {for (int s : intValues) {if (s == (Integer) value) {return true;}}} else if (value instanceof Long){for (long s : longValues) {if (s == (Long) value) {return true;}}}return false;}
}

使用

    @EnumValue(longValues = {0,1},message = "付款方式错误")private Long orderType;

级联校验

public class A{@Valid@NotNull(message = "b不能为空")@Size(min = 1, message = "b不能为空")private List<B> b;public static class B{@NotNull(message = "tenantId not null")private Long tenantId;}
}public class XxxController {@PostMapping("/xxx")public xxx xxx(@RequestBody @Validated A a) {}
}

Validator校验相关推荐

  1. springboot使用hibernate validator校验

    回到顶部 一.参数校验 在开发中经常需要写一些字段校验的代码,比如字段非空,字段长度限制,邮箱格式验证等等,写这些与业务逻辑关系不大的代码个人感觉有两个麻烦: 验证代码繁琐,重复劳动 方法内代码显得冗 ...

  2. SpringBoot中使用Hibernate Validator校验工具类

    1.说明 在Spring Boot已经集成Hibernate Validator校验器的情况下, 对于配置了校验注解的请求参数, 框架会自动校验其参数, 但是如果想手动校验一个加了注解的普通对象, 比 ...

  3. springboot 配置 Validator 校验框架国际化 支持快速返回

    1.国际化资源 使用IDEA创建资源组 2.编写配置 application.yml 增加国际化目录配置 增加国际化配置类 从请求头获取多语言关键字 /*** 国际化配置** @author Lion ...

  4. 关于javax.validation.Validator校验的使用

    关于javax.validation.Validator校验的使用 对于要校验的实体类:其需要校验的字段上需要添加注解 实际例子 使用:首先要拿到 validator的子类 Validator val ...

  5. java hibernate 校验_Hibernate Validator校验

    1. 参数校验 spring-boot-starter-web包里面有hibernate-validator包,不需要引用hibernate validator依赖. 2. hibernate val ...

  6. springboot中hibernate validator校验模式,分组校验,自定义校验

    检验模式 上面例子中一次性返回了所有验证不通过的集合,通常按顺序验证到第一个字段不符合验证要求时,就可以直接拒绝请求了.Hibernate Validator有以下两种验证模式: 普通模式(默认是这个 ...

  7. SpringBoot使用validator校验

    在前台表单验证的时候,通常会校验一些数据的可行性,比如是否为空,长度,身份证,邮箱等等,那么这样是否是安全的呢,答案是否定的.因为也可以通过模拟前台请求等工具来直接提交到后台,比如postman这样的 ...

  8. validator校验注解

    validator-api校验注解 一.日期格式校验注解@DateValue @DateValue(message = "", //返回信息groups = {}, //校验分组p ...

  9. Go 语言编程 — validator 数据校验工具

    目录 文章目录 目录 Validator Quick start 约束类型 特殊约束 格式约束 数据结构类型约束 范围约束 字符串约束 唯一性约束 跨字段约束 自定义约束 错误处理 中文错误信息 参考 ...

最新文章

  1. 飞线5根连接图_“飞线”和“跳线”有什么区别,你用对了吗?电路故障的排查方法...
  2. 腾讯帝国的野蛮生长史
  3. 浮点数内存表示---记录一道题目
  4. jQuery 1.4 版本的十五个新特性-转载
  5. php调用文章标题,zblogphp标题格式的标签调用详细说明
  6. 中科曙光:与VMware合资公司是技术公司
  7. day048 BOM和DOM
  8. [HTML5_资源]给网页设计师的30个HTML5学习资源
  9. asp.net MVC中form提交和控制器接受form提交过来的数据(转)
  10. GIT的安装与gitee基础使用
  11. 11g DB与AFD不兼容导致的 oracle[3038361] oracleafd:19:1616:Failed to map IO buffer in kernel memory 报错
  12. linux express 安装,linux下的node+express安装教程
  13. DDR3的一些基本知识
  14. Xdebug中文文档-基础特性
  15. 诗词锦集(持续更新)
  16. uni-app转小程序遇到的问题 (组件使用插槽的问题)(跨端兼容、条件编译)(小程序自定义胶囊按钮封装)(uni-app挂载原型链)
  17. OpenText Content Server 客户案例——全球最大的商业炸药和创新爆破系统供应商Orica
  18. EasyExcel对列同类项进行单元格合并
  19. ALGO-973 唯一的啥子( 蓝桥杯题解)
  20. IDEA下的Java编程

热门文章

  1. mysql反模式_myfat: MyFat是MyBatis的DAO功能增强插件
  2. 基于Android的儿童绘本阅读与收听APP的设计与实现【附项目源码+论文说明】
  3. 【Dreamon】哆啦A梦居然说过这样的话!!!
  4. java day37 mysql+Servlet(数据显示与删除)
  5. golang 自定义Set 及 使用
  6. 【人工智能导论】吃豆人游戏(上):对抗搜索与Minimax算法
  7. 聊聊我的金钱观,和你不一样!
  8. iOS设备一键越狱(PP助手、盘古越狱)
  9. 监听微信手Q的挂起事件(visibilitychange)
  10. 智能家居项目(十三)