SpringMVC JSR303校验
血淋淋的经验
1、导入pom.xml依赖
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.1.5.Final</version>
</dependency>
这里导入pom依赖有个巨坑,狗日的,折磨我整整一天。这里一定要使用6版本的,一定不要使用7版本的。7版本的无法校验成功(只是因为自己能力不够!!)。
2、在需要验证的pojo对象上,加上需要验证的注解
(注意导入的包,javax.validation.constraints.*;
7版本需要导入的包是jakarta.validation.constraints.*)
package com.peiyuanman.pojo;
import javax.validation.constraints..Email;
import org.hibernate.validator.constraints.Range;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
public class User {
@NotNull
private Integer id;
@NotEmpty
private String username;
@NotNull
private String gender;
@NotNull
@Range(min = 1, max = 100)
private Integer age;
@NotNull
@Email
private String mail;
}
3、 在需要验证的参数前加上注解
import javax.validation.Valid;
public void test(@Valid User user, BindingResult result){
if (result.hasErrors()){
Map<String, Object> map = new HashMap<String, Object>();
List<FieldError> fieldErrors = result.getFieldErrors();
for (FieldError error : fieldErrors) {
System.out.println("错误的字段名:"+error.getField());
System.out.println("错误的信息:"+error.getDefaultMessage());
map.put(error.getField(), error.getDefaultMessage());
}
}else{
pass;
}
}