mica 中已经做了参数校验异常的统一处理。下面2种方式可以用于所有的 Spring bean 不仅仅是 Controller
控制器。
原始类型参数
直接在控制器(或者其他Bean)上使用@Validated
注解。
@RestController @RequestMapping("account") @Validated public class AccountController { }
|
在参数前添加校验注解
@GetMapping("account") public Result<AccountVO> getAccount( @NotNull Long accountId ) { }
|
表单对象参数
参数 AddressForm
,添加 @Valid
。
@PostMapping("/address/save") public Object saveAddress(@Valid AddressForm addressForm) { ...... }
|
AddressForm
中添加注解
@Data public class AddressForm { private Integer id; @NotBlank private String name; @NotBlank(message = "{mobile.not.blank}") @Pattern(regexp = "^1[34578]\\d{9}$") private String mobile;
@Valid private List<Xxx> list; ...... }
|
注意:
示例中 {name.not.blank} 为国际化配置。国际化需要在配置文件下自定义 org/hibernate/validator/ValidationMessages.properties
。
Bean Validation 中常用注解
@Null 被注释的元素必须为 null @NotNull 被注释的元素必须不为 null @NotBlank(message =) 验证字符串非null,且长度必须大于0 @NotEmpty 被注释的字符串、集合的必须非空 @AssertTrue 被注释的元素必须为 true @AssertFalse 被注释的元素必须为 false @Min(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值 @Max(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值 @DecimalMin(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值 @DecimalMax(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值 @Size(max=, min=) 被注释的元素的大小必须在指定的范围内 @Digits (integer, fraction) 被注释的元素必须是一个数字,其值必须在可接受的范围内 @Past 被注释的元素必须是一个过去的日期 @Future 被注释的元素必须是一个将来的日期 @Pattern(regex=,flag=) 被注释的元素必须符合指定的正则表达式
|
Hibernate Validator 常用注解
@Email 被注释的元素必须是电子邮箱地址 @Length(min=,max=) 被注释的字符串的大小必须在指定的范围内 @Range(min=,max=,message=) 被注释的元素必须在合适的范围内
|
微信公众号

精彩内容每日推荐!!!