Skip to content

Commit 9df9039

Browse files
committed
Update SpringBoot整合Hibernate-Validator.md
1 parent 1551b54 commit 9df9039

File tree

1 file changed

+40
-40
lines changed

1 file changed

+40
-40
lines changed

doc/SpringBoot整合Hibernate-Validator.md

+40-40
Original file line numberDiff line numberDiff line change
@@ -85,46 +85,46 @@
8585
public interface AddGroup {}
8686
public interface UpdateGroup {}
8787
[2]给需要校验的实体类属性添加校验注解:
88-
public class Student {
89-
@Min(value = 1, groups = {AddGroup.class})
90-
private int studentNo;
91-
@NotBlank(message = "姓名不能为空", groups = {AddGroup.class, UpdateGroup.class})
92-
private String name;
93-
@Min(value = 1,groups = {AddGroup.class, UpdateGroup.class})
94-
private int age;
95-
@Pattern(regexp = "^[0|1]$",message = "性别只能是1:男 0:女",
96-
groups = {AddGroup.class,UpdateGroup.class})
97-
private String gender;
98-
public Student() {}
99-
// get,set略
100-
}
101-
[3]使用@Validated修饰参数为包含校验属性对象:
102-
@Controller
103-
public class TestGroupController {
104-
// 注: 参数BindingResult对象打开,则需要在方法中处理校验异常,关闭则可交由统一异常处理方法处理
105-
@GetMapping("test3")
106-
@ResponseBody
107-
public String test3(@Validated(AddGroup.class) Student student,
108-
BindingResult result) {
109-
if(result.hasErrors()){
110-
StringBuilder stringBuilder = new StringBuilder();
111-
// 获取校验的错误结果
112-
result.getFieldErrors().forEach(item->{
113-
// 获取错误的属性的名字
114-
String field = item.getField();
115-
// 获取到错误提示
116-
String message = item.getDefaultMessage();
117-
stringBuilder.append(field).append("-").append(message).append(", ");
118-
});
119-
return "提交的数据不合法: "+ stringBuilder.toString();
120-
}
121-
return "success";
122-
}
123-
}
124-
注:
125-
使用分组校验后,未添加分组的属性不会进行校验;
126-
BindingResult对象一旦在方法参数中使用,校验异常时会自动将异常捕捉封装进该对象,不会向外抛出;
127-
[4]测试: http://localhost:8080/test3?studentNo=1&name=柯南&age=8&gender=1
88+
public class Student {
89+
@Min(value = 1, groups = {AddGroup.class})
90+
private int studentNo;
91+
@NotBlank(message = "姓名不能为空", groups = {AddGroup.class, UpdateGroup.class})
92+
private String name;
93+
@Min(value = 1,groups = {AddGroup.class, UpdateGroup.class})
94+
private int age;
95+
@Pattern(regexp = "^[0|1]$",message = "性别只能是1:男 0:女",
96+
groups = {AddGroup.class,UpdateGroup.class})
97+
private String gender;
98+
public Student() {}
99+
// get,set略
100+
}
101+
[3]使用@Validated修饰参数为包含校验属性对象:
102+
@Controller
103+
public class TestGroupController {
104+
// 注: 参数BindingResult对象打开,则需要在方法中处理校验异常,关闭则可交由统一异常处理方法处理
105+
@GetMapping("test3")
106+
@ResponseBody
107+
public String test3(@Validated(AddGroup.class) Student student,
108+
BindingResult result) {
109+
if(result.hasErrors()){
110+
StringBuilder stringBuilder = new StringBuilder();
111+
// 获取校验的错误结果
112+
result.getFieldErrors().forEach(item->{
113+
// 获取错误的属性的名字
114+
String field = item.getField();
115+
// 获取到错误提示
116+
String message = item.getDefaultMessage();
117+
stringBuilder.append(field).append("-").append(message).append(", ");
118+
});
119+
return "提交的数据不合法: "+ stringBuilder.toString();
120+
}
121+
return "success";
122+
}
123+
}
124+
注:
125+
使用分组校验后,未添加分组的属性不会进行校验;
126+
BindingResult对象一旦在方法参数中使用,校验异常时会自动将异常捕捉封装进该对象,不会向外抛出;
127+
[4]测试: http://localhost:8080/test3?studentNo=1&name=柯南&age=8&gender=1
128128
6.自定义校验规则:
129129
[1]自定义校验注解的基本格式:
130130
@Target({ElementType.FIELD, ElementType.METHOD})

0 commit comments

Comments
 (0)