@NotNull 和 @NotEmpty 和@NotBlank 区别
@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,也可以通过正则表达式和flag指定自定义的email格式 |
示例:
@Pattern(regexp="^[a-zA-Z0-9]+$",message="{account.username.space}")
@Size(min=3,max=20,message="{account.username.size}")
@NotNull 和 @NotEmpty 和@NotBlank 区别相关推荐
- @NotNull和@NotEmpty和@NotBlank区别
1.@NotNull:不能为null,但可以为empty (""," "," ") 2.@NotEmpty:不能为null,而且长度必须大于 ...
- @NotNull、@NotEmpty、@NotBlank区别
@NotNull:不能为null,但可以为空字符串,校验Integer类型不能为空 @NotEmpty:不能为null,并且长度必须大于0,校验List类型不能为空 @NotBlank:只能作用在St ...
- @NotNull、@NotEmpty和@NotBlank的区别
@NotNull.@NotEmpty和@NotBlank的区别 @NotNull 不能为null,但可以为empty,没有Size的约束. @NotBlank 只能用于String,不能为空且trim ...
- @NotNull,@NotEmpty和@NotBlank使用和区别
实际上关于参数校验我们经常会遇到@NotNull,@NotEmpty和@NotBlank,几乎涉及到校验的工具包都会有它们的身影不管是Hibernate工具包还是Apache的校验工具包或者其他常用的 ...
- notempty注解报红_@NotNull、@NotEmpty、@NotBlank注解使用
使用场景:如前后分离的项目,前端提交表单后,后端对必填字段进行校验,可直接使用注解进行实现,下面说一下这三个注解的区别. 第一:@NotNull,使用这个注解时,属性不可以为null,但是可以为空串. ...
- 实体字段校验@NotNull、@NotEmpty、@NotBlank
在前段向后端提交较多数据时,我们一般都会遇到字段校验的问题,使用Spring的字段验证很省事,一般会使用@NotNull.@NotEmpty.@NotBlank这三个东西,但使用的时候后端接收参数一定 ...
- 校验注解-- @NotNull、@NotEmpty、@NotBlank
实体字段校验 @NotNull.@NotEmpty.@NotBlank 1.@NotNull:不能为 null,但可以为 empty,一般用在 Integer 类型的基本数据类型的非空校验上,而且被其 ...
- @NotNull, @NotEmpty和@NotBlank之间的区别及示例
三者之间的区别 `@NotNull:` CharSequence, Collection, Map 和 Array 对象不能是 null, 但可以是空集(size = 0). `@NotEmpty:` ...
- Spring Boot req中@NotNull, @NotEmpty和@NotBlank之间的区别是什么?
简述三者区别 @NotNull://CharSequence, Collection, Map 和 Array 对象不能是 null, 但可以是空集(size = 0). @NotEmpty://Ch ...
- @NotNull, @NotEmpty和@NotBlank之间的区别是什么?
首先是简要描述: [java] view plain copy print ? @NotNull://CharSequence, Collection, Map 和 Array 对象不能是 null, ...
最新文章
- leetcode:2680 Remove Duplicates from Sorted Array 删除数组中的重复元素
- Linux入门时必学文件处理个命令
- mac 上mysql怎么卸载不了_mac的mysql怎么卸载?
- 用python连接数据库_用Python连接MySQL
- BDD 与DSL 入门
- golang的一款cms内容管理系统
- zabbix对网站web监控(配置模板)
- Android Binder 学习中几个问题
- python解决八数码问题_python八数码
- app_start(‘com.ss.android.ugc.aweme‘) 打不开app 无反应 Activity not started, unable to resolve Intent {
- 计算机电子科技生产质量标准,SJT9527-1993微型数字电子计算机质量分等标准.pdf...
- 转:这些道理不懂,你注定就是穷打工的命
- ios11修改微信步数_iOS逆向之“修改微信运动步数”
- H.264笔记整理3
- 川崎机器人总线通信_川崎机器人:PLC有那些功能?能实现机器人哪些通讯?
- [iOS]-单例模式\通知\代理
- 中国大学生服务外包创新创业大赛近五届(八至十二)赛题汇总
- Office 办公软件 word Excel PPT(3)
- php在pdf文件上写字
- 一个人的周末,我在歌唱