如何解决Spring in action @valid验证不生效的问题
作者:codexjli 时间:2023-08-29 07:59:56
解决Spring in action @valid验证不生效
按照书上的示例代码来实现但是,添加了验证但是没有生效。
Spring提供了校验Api是使用但是没有提供实现,所以需要自己导入实现包。
所以导入实现包:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.1.1.Final</version>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.validation/validation-api -->
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.1.0.Final</version>
</dependency>
但是还是没有解决问题,程序正常运行,校验不生效。
想到之前用Maven来导入一些jar报的时候,还是会提示找不到(不知道是不是因为使用的Xampp自带的tomcat的原因)。之前的解决办法就是把Jar包丢到Tomcat的lib文件夹下。
于是就把上面Maven下载下来的两个jar包丢了进去,果然发生了一些变化,这次出现了报错,程序不能正常运行。
报错:
Hibernate Validator java.lang.NoClassDefFoundError: Could not initialize class org.hibernate.validator.internal.engine.ConfigurationImpl
然后查找解决办法,在Stack Overflow上找到了解决办法,缺少org.jboss.logging和com.fasterxml classmate包,所以在Maven中加入
<dependency>
<groupId>org.jboss.logging</groupId>
<artifactId>jboss-logging</artifactId>
<version>3.3.2.Final</version>
</dependency>
<dependency>
<groupId>com.fasterxml</groupId>
<artifactId>classmate</artifactId>
<version>1.3.4</version>
</dependency>
但是还是没有解决问题,使用老办法,把这两个Jar包丢到Tomcat的lib文件夹下,问题解决。
最近遇到好多Maven导入的包在运行的时候不生效的问题,就是不报错,但是运行的时候nodefClass错误。
找到解决办法:解决idea导入maven项目缺少jar包的问题方法
springboot @Validate不生效的原因
使用validate相关注解却没用生效的问题
public class LoginRequest implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "手机号", required = true, example = "18888888")
@Pattern(regexp = RegularConstants.PHONE, message = "手机号码格式错误")
@JsonProperty(value = "phone")
private String phone;
@ApiModelProperty(value = "密码", required = true, example = "1~[6,18]")
@Pattern(regexp = RegularConstants.PASSWORD, message = "密码格式错误,密码必须以字母开头,长度在6~18之间,只能包含字符、数字和下划线")
private String password;
}
解决思路
引入hibernate相关依赖
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.0.21.Final</version>
</dependency>
<dependency>
<groupId>javax.el</groupId>
<artifactId>javax.el-api</artifactId>
<version>3.0.0</version>
</dependency>
相关配置
@Configuration
public class ValidatorConfiguration {
@Bean
public Validator validator() {
ValidatorFactory validatorFactory = Validation.byProvider(HibernateValidator.class)
.configure()
.addProperty("hibernate.validator.fail_fast", "true")
.buildValidatorFactory();
return validatorFactory.getValidator();
}
}
全局拦截验证错误
@RestControllerAdvice
public class WebGlobalExceptionHandler {
// private static final Logger logger = LoggerFactory.getLogger(GlobalExceptionHandler.class);
/**
* 拦截JSON参数校验
*/
// @ResponseStatus(HttpStatus.OK)
@ExceptionHandler(MethodArgumentNotValidException.class)
public CommonResult bindException(MethodArgumentNotValidException e) {
BindingResult bindingResult = e.getBindingResult();
return CommonResult.failed(ExceptionCodeEnum.VALIDATE_FAILED,Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
}
}
来源:https://blog.csdn.net/codexjli/article/details/89639577
标签:Spring,@valid,验证
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
java如何将一个float型数的整数部分和小数分别输出显示
2022-08-17 16:50:26
java导出Excel文件的步骤全纪录
2021-10-04 11:18:38
JavaWeb实现用户登录与注册功能
2022-08-30 17:23:48
![](https://img.aspxhome.com/file/2023/5/83435_0s.jpg)
Android Init进程对信号的处理流程详细介绍
2022-10-25 18:03:31
C++ 超详细讲解stack与queue的使用
2021-08-28 02:23:32
![](https://img.aspxhome.com/file/2023/5/122585_0s.png)
C#灰度化图像的实例代码
2023-07-14 07:35:34
Java实现聊天机器人完善版
2022-10-07 09:31:11
![](https://img.aspxhome.com/file/2023/2/72902_0s.png)
HttpClient 在Java项目中的使用详解
2021-12-06 02:36:57
详解Android StrictMode严格模式的使用方法
2023-09-14 17:03:39
Android实现3D云标签效果
2022-06-05 10:33:50
![](https://img.aspxhome.com/file/2023/2/113322_0s.gif)
Java多线程实现四种方式原理详解
2022-05-30 02:55:10
Java的动态分派和静态分派的实现
2023-10-09 12:58:37
C#访问SqlServer设置链接超时的方法
2022-11-19 17:43:21
基于C#实现FTP下载文件
2021-07-09 20:10:01
![](https://img.aspxhome.com/file/2023/4/71084_0s.png)
C#文件和字节流的转换方法
2022-03-18 05:39:43
Android自定义view实现滚动选择控件详解
2022-12-05 09:54:06
![](https://img.aspxhome.com/file/2023/6/108286_0s.gif)
C#使用SharpZipLib压缩解压文件
2021-10-27 18:56:21
C#装箱和拆箱操作实例分析
2021-10-25 13:17:36
C#中定时任务被阻塞问题的解决方法
2023-10-27 00:56:02
![](https://img.aspxhome.com/file/2023/7/92877_0s.png)
java 一个类实现两个接口的案例
2023-08-09 12:24:35
![](https://img.aspxhome.com/file/2023/0/58160_0s.jpg)