-
SpringBoot註解驗證參數
-
使用實例
public class Test { @NotNull(message = "ID不能爲空") @Range(min = 1, max = 100, message = "ID必須在1到100之間") private Integer id; @NotBlank(message = "姓名不能爲空") @Length(min = 2, max = 6, message = "姓名必須在2到6位之間") private String name; @NotNull(message = "餘額不能爲空") @DecimalMax(value = "30.50", message = "餘額不能超過30.5") @DecimalMin(value = "1.50", message = "餘額不能低於1.5") private BigDecimal amount; @NotNull(message = "生日不能爲空") @Past(message = "生日必須是過去") private Date birthday; @NotBlank(message = "郵箱不能爲空") @Email(message = "郵箱格式不正確") private String email; @NotBlank(message = "手機號不能爲空") @Pattern(regexp = "^(((13[0-9])|(14[579])|(15([0-3]|[5-9]))|(16[6])|(17[0135678])|(18[0-9])|(19[89]))\\d{8})$", message = "手機號格式錯誤") private String phone; }
-
然後在controller的每個接口中使用@Validated和BindingResult類;@Validated註解用於驗證一個入參,驗證之後的消息綁定到BindingResult類中:
@PostMapping("/test")
@ApiOperation(value = "測試", notes = "", response = Result.class)
public Result test(@ApiParam(name = "test", value = "參數", required = true) @Validated @RequestBody Test test, BindingResult bindingResult) {
if(bindingResult.hasErrors()){
String errorMsg = bindingResult.getFieldError().getDefaultMessage();
return Result.error(errorMsg);
}
return Result.ok("參數驗證通過");
}