SpringMVC @NotNull校验不生效的解决方案
目录
- SpringMVC @NotNull校验不生效
- 加了两个依赖问题解决
- @NotNull注解失效原因之一
- Lombok判断注解怎么使用,总结下来为
SpringMVC @NotNull校验不生效
是不是少包了。
@NotEmpty也找不到。
加了两个依赖问题解决
<dependency> <groupId>javax.validation</groupId> <artifactId>validation-api</artifactId> <version>2.0.1.Final</version> </dependency> <dependency> <groupId>org.hibernate.validator</groupId> <artifactId>hibernate-validator</artifactId> <version>6.0.7.Final</version> </dependency>
@NotNull注解失效原因之一
给String类型加上@NotNull注解时,只有传入的参数为空时才会报异常,当传入的为空字符串时并不会报异常,就会出现报异常的现象
传参为空指的是该参数就没有传,为空字符串指的是有该参数但是是双引号""
Lombok判断注解怎么使用,总结下来为
@NotEmpty
用在集合类上@NotBlank
用在String上@NotNull
用在基本类型上
最后最重要的是,在接口参数前加注解'@Validated'
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
一次踩坑记录 @valid注解不生效 排查过程
一.背景 在进行一次Controller层单测时,方法参数违反Validation约束,发现却没有抛出预期的[违反约束]异常. 方法参数上的@Valid注解不生效?? 但是以Tomcatweb容器方式启动,请求该API,@Valid注解却生效了,甚是怪异. 代码如下: @RestController @RequestMapping("/api/user/") public class UserController @RequestMapping(value = ""
-
spring 注解验证@NotNull等使用方法
本文介绍了spring 注解验证@NotNull等使用方法,分享给大家,具体如下: 常用标签 @Null 被注释的元素必须为null @NotNull 被注释的元素不能为null @AssertTrue 被注释的元素必须为true @AssertFalse 被注释的元素必须为false @Min(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值 @Max(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值 @DecimalMin(value)
-
Spring @Transactional注解失效解决方案
这篇文章主要介绍了Spring @Transactional注解失效解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 这几天在项目里面发现我使用@Transactional注解事务之后,抛了异常居然不回滚.后来终于找到了原因. 如果你也出现了这种情况,可以从下面开始排查. 一.特性 先来了解一下@Transactional注解事务的特性吧,可以更好排查问题 1.service类标签(一般不建议在接口上)上添加@Transactional,
-
由@NotNull注解引出的关于Java空指针的控制
Java 小技巧和在java应用避免NullPonintException的最佳方法 在java应用程序中,一个NullPonintException(空指针异常)是最好解决(问题)的方法.同时,空指针也是写健壮的顺畅运行的代码的关键."预防好过治疗"这句话也同样适用于令人不爽的NullPonintException.通过应用防御性的编码技术和在遵守多个部分之间的约定,你可以再很大程度上避免NullPointException.下面的这些java小技巧可以最小化像!=null这种检查的
-
SpringMVC @NotNull校验不生效的解决方案
目录 SpringMVC @NotNull校验不生效 加了两个依赖问题解决 @NotNull注解失效原因之一 Lombok判断注解怎么使用,总结下来为 SpringMVC @NotNull校验不生效 是不是少包了. @NotEmpty也找不到. 加了两个依赖问题解决 <dependency> <groupId>javax.validation</groupId> <artifactId>validation-api</artifactId> &l
-
SpringMVC 数据校验方法(必看篇)
数据校验在web应用里是非常重要的功能,尤其是在表单输入中.在这里采用Hibernate-Vapdator进行校验,该方法实现了JSR-303验证框架支持注解风格的验证. 一.导入jar包 若要实现数据校验功能,需要导入必要的jar包,主要包括以下几个: classmate-1.3.1.jar hibernate-vapdator-5.4.1.Final.jar hibernate-vapdator-annotation-processor-5.4.1.Final.jar hibernate-v
-
SpringMVC 数据校验实例解析
这篇文章主要介绍了SpringMVC 数据校验实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.注解方式 二.示例 Spring MVC本身没有数据校验的功能,它使用Hibernate的校验框架来完成. 1.导入pom节点 <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-validator --> <dependency> <group
-
解决get请求入参@NotNull验证不生效问题
目录 get请求@NotNull验证不生效 解决办法 使用@NotEmpty,@NotBlank,@NotNull及@Valid注解校验请求参数 这里列举一下常用的注解 当校验不同过时,会返回对应的message描述 CreateUserRequest 实体类并添加校验注解 get请求@NotNull验证不生效 解决办法 在该方法的controller类上加@Validated 验证信息生效了 使用@NotEmpty,@NotBlank,@NotNull及@Valid注解校验请求参数 @NotE
-
maven依赖版本没有按照最短路径原则生效的解决方案
女朋友他们项目用了 spring-boot,以 spring-boot-parent 作为 parent: <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.9</version> </parent> 女朋友最近想用 elast
-
java开发之基于Validator接口的SpringMVC数据校验方式
Spring MVC 提供了两种数据校验的方式: 1.基于 Validator 接口. 2.使用 Annotation JSR - 303 标准进行校验. 基于 Validator 接口的⽅式需要自定义 Validator 验证器,每⼀条数据的验证规则需要开发者⼿动完成, 使⽤ Annotation JSR - 303 标准则不需要⾃定义验证器,通过注解的方式可以直接在实体类中添加每个属性的验证规则,这种方式更加方便,实际开发中推荐使用. 1.定义实体类Account package entit
-
关于keep-alive路由多级嵌套不生效的解决方案
目录 问题 定位问题 解决方案 额外的问题及题解 问题 发现了一个问题,多级嵌套的路由缓存页面没有生效.网上其实有一些是把路由拍平,然后再去处理菜单,但是我觉得还不如从根源上去解决这个问题.顺带了解一下keep-alive的工作原理. 实际就是根据组件的名称,如果即将渲染的组件名称命中存在缓存数组,那么直接取缓存里的组件进行渲染.同时,这个命中缓存是带有父子组件关联关系的 以下会根据本图做讲解 定位问题 keep-alive实际就是根据组件的名称,如果即将渲染的组件名称命中存在缓存数组,那么直接
-
MyBatis中PageHelper不生效的解决方案
MyBatis中PageHelper不生效 今天使用pageHelper,发现设置了PageHelper.startPage(page, pageSize);pageSize设置为10,但是结果并没有分页,查处了全部的数据: 问题解决: 原因是mybatis的依赖版本问题,之前配置的是1.0.0版本,这个版本不支持分页拦截 <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>
-
docker swarm外部验证负载均衡时不生效的解决方案
问题描述 我在本地创建了3个装了centos7的虚拟机, 并初始化了swarm集群, 即1个manager节点, 2个worker节点; 三台机子的ip分别是 192.168.124.8 - (manager节点), 192.168.124.9 - (worker节点), 192.168.124.10 - (worker节点) [root@localhost ~]# docker node ls ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENG
-
Jackson反序列化@JsonFormat 不生效的解决方案
今天在线上发现一个问题,在使用Jackson进行时间的反序列化时,配置的 @JsonFormat 没有生效 查看源码发现,Jackson在反序列化时间时,会判断json字段值类型,如下: 由于在我们服务里,前端传时间值到后端时采用了时间戳的方式,json值被判断为数字类型,所以Jackson在反序列化时直接简单粗暴的方式处理,将时间戳转换为Date类型: 为了能够按照正确的格式解析时间,抹去后面的时间点,精确到日,只好自定义一个时间解析器.自定义的时间解析器很好实现,网上已经有很多实例代码,只需
随机推荐
- JQuery实现列表中复选框全选反选功能封装(推荐)
- 免安装的Tomcat服务器的基本配置和安装
- JavaScript 选中文字并响应获取的实现代码
- php实现mysql数据库操作类分享
- C#实现多选项卡的浏览器控件
- iOS开发之UIKeyboardTypeNumberPad数字键盘自定义按键
- 简要介绍C++编程中的友元函数和友元类
- C#转换日期类型实例
- php下通过伪造http头破解防盗链的代码
- 普桑灯光按钮的使用图解说明(路考用车)
- 学习JavaScript设计模式之状态模式
- jQuery fadeTo方法调整图片的透明度使用介绍
- jquery插件bootstrapValidator表单验证详解
- 微信小程序之GET请求的实例详解
- 三种方式获取XMLHttpRequest对象
- JavaScript实现简单的拖动效果
- php curl_init函数用法
- Springboot网站第三方登录 微信登录
- 你可能不知道的前端算法之文字避让(inMap)
- vue的mixins属性详解