https://www.cnblogs.com/mr-yang-localhost/p/7812038.html
在开发中经常需要写一些字段校验的代码,比如字段非空,字段长度限制,邮箱格式验证等等
hibernate validator(官方文档)提供了一套比较完善、便捷的验证实现方式
验证请求参数时,在@RequestBody DemoModel demo之间加注解 @Valid,然后后面加BindindResult即可;
多个参数的,可以加多个@Valid和BindingResult :
public void test()(@RequestBody @Valid DemoModel demo, BindingResult result)
public void test()(@RequestBody @Valid DemoModel demo, BindingResult result,
@RequestBody @Valid DemoModel demo2, BindingResult result2)
@RequestMapping("/demo2")
public void demo2(@RequestBody @Valid DemoModel demo, BindingResult result){
if(result.hasErrors()){
for (ObjectError error : result.getAllErrors()) {
System.out.println(error.getDefaultMessage());
}
}
}
SpringBoot
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
SpringMVC
要在Maven项目中使用Hibernate Validator,只需将以下依赖项添加到pom.xml:
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.0.15.Final</version>
</dependency>
Hibernate Validator需要实现统一表达式语言(JSR 341)来评估约束违规消息中的动态表达式
当您的应用程序在诸如JBoss AS的Java EE容器中运行时,容器已经提供了EL实现
但是,在Java SE环境中,您必须将实现作为依赖项添加到POM文件中:
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.el</artifactId>
<version>3.0.1-b09</version>
</dependency>