diff --git a/weblog-web/pom.xml b/weblog-web/pom.xml index da0ad2d03e816484c7537e9ce9158df4c5590936..ac48acc4b04e2e49f67719663b4115531cb8793f 100644 --- a/weblog-web/pom.xml +++ b/weblog-web/pom.xml @@ -45,6 +45,10 @@ org.springframework.boot spring-boot-starter-web + + org.springframework.boot + spring-boot-starter-validation + diff --git a/weblog-web/src/main/java/com/qianyong/weblog/web/controller/TestController.java b/weblog-web/src/main/java/com/qianyong/weblog/web/controller/TestController.java index 6f7a2269d9d75514bc4b0beff9faab8bf3689e2e..9f323b836a6a7fc58b0f119726eeb980c33441e9 100644 --- a/weblog-web/src/main/java/com/qianyong/weblog/web/controller/TestController.java +++ b/weblog-web/src/main/java/com/qianyong/weblog/web/controller/TestController.java @@ -3,10 +3,16 @@ package com.qianyong.weblog.web.controller; import com.qianyong.weblog.common.aspect.ApiOperationLog; import com.qianyong.weblog.web.model.User; import lombok.extern.slf4j.Slf4j; +import org.springframework.http.ResponseEntity; +import org.springframework.validation.BindingResult; +import org.springframework.validation.FieldError; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; +import java.util.stream.Collectors; + /** * Created with IntelliJ IDEA. * @@ -24,4 +30,22 @@ public class TestController { // 返参 return user; } + + @PostMapping("/field") + @ApiOperationLog(description = "测试接口field") + public ResponseEntity field(@RequestBody @Validated User user, BindingResult bindingResult) { + // 是否存在校验错误 + if (bindingResult.hasErrors()) { + // 获取校验不通过字段的提示信息 + String errorMsg = bindingResult.getFieldErrors() + .stream() + .map(FieldError::getDefaultMessage) + .collect(Collectors.joining(", ")); + + return ResponseEntity.badRequest().body(errorMsg); + } + + // 返参 + return ResponseEntity.ok("参数没有任何问题"); + } } diff --git a/weblog-web/src/main/java/com/qianyong/weblog/web/model/User.java b/weblog-web/src/main/java/com/qianyong/weblog/web/model/User.java index cab37b4534302fa61311b2c4f9951660e0329015..088aa052787282460c9a7a57f2141ba451aeb5f4 100644 --- a/weblog-web/src/main/java/com/qianyong/weblog/web/model/User.java +++ b/weblog-web/src/main/java/com/qianyong/weblog/web/model/User.java @@ -2,6 +2,8 @@ package com.qianyong.weblog.web.model; import lombok.Data; +import javax.validation.constraints.*; + /** * Created with IntelliJ IDEA. * @@ -13,7 +15,20 @@ import lombok.Data; @Data public class User { // 用户名 + @NotBlank(message = "用户名不能为空") // 注解确保用户名不为空 private String username; // 性别 + @NotNull(message = "性别不能为空") // 注解确保性别不为空 private Integer sex; + + // 年龄 + @NotNull(message = "年龄不能为空") + @Min(value = 18, message = "年龄必须大于或等于 18") // 注解确保年龄大于等于 18 + @Max(value = 100, message = "年龄必须小于或等于 100") // 注解确保年龄小于等于 100 + private Integer age; + + // 邮箱 + @NotBlank(message = "邮箱不能为空") + @Email(message = "邮箱格式不正确") // 注解确保邮箱格式正确 + private String email; }