Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit adb10d0

Browse files
[add] 分组参数校验
1 parent 7543152 commit adb10d0

File tree

4 files changed

+35
-3
lines changed

4 files changed

+35
-3
lines changed

‎web/src/main/java/demo/web/controller/RestfulController.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import demo.web.controller.base.ResponseDTO;
44
import demo.web.controller.req.User;
5+
import demo.web.controller.validator.ValidatorGroup1;
56
import demo.web.handler.GlobalExceptionHandler;
67
import demo.web.service.AsyncTaskService;
78
import org.hibernate.validator.constraints.Range;
@@ -110,9 +111,10 @@ public User param(@Valid User user) {
110111
/**
111112
* 参数校验2,入参为json数据
112113
* 异常类型:{@link org.springframework.web.bind.MethodArgumentNotValidException}
114+
* 指定校验分组为{@link ValidatorGroup1}
113115
*/
114116
@PostMapping("/param1")
115-
public ResponseDTO param1(@Valid @RequestBody User user) {
117+
public ResponseDTO param1(@Validated(value = {ValidatorGroup1.class}) @RequestBody User user) {
116118
return ResponseDTO.successObj().putData("user", user);
117119
}
118120

‎web/src/main/java/demo/web/controller/req/User.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package demo.web.controller.req;
22

3+
import demo.web.controller.validator.ValidatorGroup1;
4+
import demo.web.controller.validator.ValidatorGroup2;
35
import lombok.AllArgsConstructor;
46
import lombok.Data;
57
import lombok.NoArgsConstructor;
@@ -31,10 +33,10 @@ public class User {
3133
private String id;//用户ID
3234
//参考:https://www.jianshu.com/p/46eda1f96abe
3335
@NotNull(message = "{username.isNull}")//错误信息见ValidationMessages.properties文件
34-
@Length(min = 2, max = 64, message = "昵称长度必须在2-64个字符")
36+
@Length(min = 2, max = 64, message = "昵称长度必须在2-64个字符", groups = {ValidatorGroup1.class})//分组校验
3537
private String username;//用户名(昵称)
3638

37-
@Email(message = "邮箱必须合法")
39+
@Email(message = "邮箱必须合法", groups = {ValidatorGroup2.class, ValidatorGroup2.class})//分组校验
3840
@NotNull(message = "邮箱不能为空")
3941
private String email;// 邮箱
4042
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package demo.web.controller.validator;
2+
3+
/**
4+
* parent
5+
* demo.web.controller.validator
6+
* 检验分组1
7+
* 该接口无需方法和实现,仅仅作为一个区分标志
8+
*
9+
* @author BlueDriver
10+
* @email cpwu@foxmail.com
11+
* @date 2019年05月22日 12:47 Wednesday
12+
*/
13+
public interface ValidatorGroup1 {
14+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package demo.web.controller.validator;
2+
3+
/**
4+
* parent
5+
* demo.web.controller.validator
6+
* 检验分组2
7+
* 该接口无需方法和实现,仅仅作为一个区分标志
8+
*
9+
* @author BlueDriver
10+
* @email cpwu@foxmail.com
11+
* @date 2019年05月22日 12:47 Wednesday
12+
*/
13+
public interface ValidatorGroup2 {
14+
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /