@NotNull 和 @NotEmpty  和@NotBlank 区别

如果在使用注解 @Validator的时候,出现如下错误: javax.validation.UnexpectedTypeException: No validator could be found for type: java.lang.Integer

那一定是在基本类型上使用注解出现的错误,需要注意的是:

@NotNull 和 @NotEmpty  和@NotBlank 区别

@NotEmpty 用在集合类上面
@NotBlank 用在String上面
@NotNull    用在基本类型上

如果在基本类型上面用NotEmpty或者NotBlank 会出现上面的错。

自定义异常处理器,捕获错误异常

当验证不通过时会抛异常出来,在全局异常中定义异常处理器。捕获异常信息(因为验证不通过的项可能是多个所以统一捕获处理),并抛给前端。

@ControllerAdvice
public class AlarmExceptionHandler {private Logger logger = LoggerFactory.getLogger(AlarmExceptionHandler.class);@ResponseBody@ExceptionHandlerpublic JsonResult processException(Exception ex){logger.error(ex.getMessage(), ex);JsonResult jsonResult;if (ex instanceof ApiException) {ApiException error = ((ApiException) ex);jsonResult = JsonResult.buildFailResult(error.getStatus(), error.getMessage(), null);} else if (ex instanceof MethodArgumentNotValidException){jsonResult = JsonResult.buildFailResult(ApiError.PARAMS_ERROR.value(), ((MethodArgumentNotValidException) ex).getBindingResult().getFieldError().getDefaultMessage(), null);} else {jsonResult = JsonResult.of(ApiError.SERVER_ERROR);}return jsonResult;}
}

如上,MethodArgumentNotValidException 为异常类型。

部分标签含义

限制 说明
@Null 限制只能为null
@NotNull 限制必须不为null
@AssertFalse 限制必须为false
@AssertTrue 限制必须为true
@DecimalMax(value) 限制必须为一个不大于指定值的数字
@DecimalMin(value) 限制必须为一个不小于指定值的数字
@Digits(integer,fraction) 限制必须为一个小数,且整数部分的位数不能超过integer,小数部分的位数不能超过fraction
@Future 限制必须是一个将来的日期
@Max(value) 限制必须为一个不大于指定值的数字
@Min(value) 限制必须为一个不小于指定值的数字
@Past 限制必须是一个过去的日期
@Pattern(value) 限制必须符合指定的正则表达式
@Size(max,min) 限制字符长度必须在min到max之间
@Past 验证注解的元素值(日期类型)比当前时间早
@NotEmpty 验证注解的元素值不为null且不为空(字符串长度不为0、集合大小不为0)
@NotBlank 验证注解的元素值不为空(不为null、去除首位空格后长度为0),不同于@NotEmpty,@NotBlank只应用于字符串且在比较时会去除字符串的空格
@Email 验证注解的元素值是Email,也可以通过正则表达式和flag指定自定义的email格式

示例:

  1. @Pattern(regexp="^[a-zA-Z0-9]+$",message="{account.username.space}")

  2. @Size(min=3,max=20,message="{account.username.size}")

@NotNull 和 @NotEmpty 和@NotBlank 区别相关推荐

  1. @NotNull和@NotEmpty和@NotBlank区别

    1.@NotNull:不能为null,但可以为empty (""," "," ") 2.@NotEmpty:不能为null,而且长度必须大于 ...

  2. @NotNull、@NotEmpty、@NotBlank区别

    @NotNull:不能为null,但可以为空字符串,校验Integer类型不能为空 @NotEmpty:不能为null,并且长度必须大于0,校验List类型不能为空 @NotBlank:只能作用在St ...

  3. @NotNull、@NotEmpty和@NotBlank的区别

    @NotNull.@NotEmpty和@NotBlank的区别 @NotNull 不能为null,但可以为empty,没有Size的约束. @NotBlank 只能用于String,不能为空且trim ...

  4. @NotNull,@NotEmpty和@NotBlank使用和区别

    实际上关于参数校验我们经常会遇到@NotNull,@NotEmpty和@NotBlank,几乎涉及到校验的工具包都会有它们的身影不管是Hibernate工具包还是Apache的校验工具包或者其他常用的 ...

  5. notempty注解报红_@NotNull、@NotEmpty、@NotBlank注解使用

    使用场景:如前后分离的项目,前端提交表单后,后端对必填字段进行校验,可直接使用注解进行实现,下面说一下这三个注解的区别. 第一:@NotNull,使用这个注解时,属性不可以为null,但是可以为空串. ...

  6. 实体字段校验@NotNull、@NotEmpty、@NotBlank

    在前段向后端提交较多数据时,我们一般都会遇到字段校验的问题,使用Spring的字段验证很省事,一般会使用@NotNull.@NotEmpty.@NotBlank这三个东西,但使用的时候后端接收参数一定 ...

  7. 校验注解-- @NotNull、@NotEmpty、@NotBlank

    实体字段校验 @NotNull.@NotEmpty.@NotBlank 1.@NotNull:不能为 null,但可以为 empty,一般用在 Integer 类型的基本数据类型的非空校验上,而且被其 ...

  8. @NotNull, @NotEmpty和@NotBlank之间的区别及示例

    三者之间的区别 `@NotNull:` CharSequence, Collection, Map 和 Array 对象不能是 null, 但可以是空集(size = 0). `@NotEmpty:` ...

  9. Spring Boot req中@NotNull, @NotEmpty和@NotBlank之间的区别是什么?

    简述三者区别 @NotNull://CharSequence, Collection, Map 和 Array 对象不能是 null, 但可以是空集(size = 0). @NotEmpty://Ch ...

  10. @NotNull, @NotEmpty和@NotBlank之间的区别是什么?

    首先是简要描述: [java] view plain copy print ? @NotNull://CharSequence, Collection, Map 和 Array 对象不能是 null, ...

最新文章

  1. leetcode:2680 Remove Duplicates from Sorted Array 删除数组中的重复元素
  2. Linux入门时必学文件处理个命令
  3. mac 上mysql怎么卸载不了_mac的mysql怎么卸载?
  4. 用python连接数据库_用Python连接MySQL
  5. BDD 与DSL 入门
  6. golang的一款cms内容管理系统
  7. zabbix对网站web监控(配置模板)
  8. Android Binder 学习中几个问题
  9. python解决八数码问题_python八数码
  10. app_start(‘com.ss.android.ugc.aweme‘) 打不开app 无反应 Activity not started, unable to resolve Intent {
  11. 计算机电子科技生产质量标准,SJT9527-1993微型数字电子计算机质量分等标准.pdf...
  12. 转:这些道理不懂,你注定就是穷打工的命
  13. ios11修改微信步数_iOS逆向之“修改微信运动步数”
  14. H.264笔记整理3
  15. 川崎机器人总线通信_川崎机器人:PLC有那些功能?能实现机器人哪些通讯?
  16. [iOS]-单例模式\通知\代理
  17. 中国大学生服务外包创新创业大赛近五届(八至十二)赛题汇总
  18. Office 办公软件 word Excel PPT(3)
  19. php在pdf文件上写字
  20. 一个人的周末,我在歌唱

热门文章

  1. Android10 HAL模块的实现
  2. npm install报错errno -4048
  3. c java gs_Java基础-gs(垃圾回收)
  4. 密码分析之单表代换原理详解与算法实现
  5. 网站优化基本技巧(网站优化的主要工作是什么)
  6. pod容器发生OOM错误(by quqi99)
  7. verilog 握手机制学习记录
  8. Unity Shader - Specular mode: Specular parameter 高光模式中的高光参数
  9. 大数据到底怎么学:数据科学概论与大数据学习误区
  10. 百度地图定位到了非洲的问题