SpringBoot注解验证参数
本文内容纲要:
-SpringBoot注解验证参数
SpringBoot注解验证参数
废话不多说,直接上表格说明:
以上注解用到要验证参数的封装类中的属性上:
publicclassTest{
@NotNull(message="ID不能为空")
@Range(min=1,max=100,message="ID必须在1到100之间")
privateIntegerid;
@NotBlank(message="姓名不能为空")
@Length(min=2,max=6,message="姓名必须在2到6位之间")
privateStringname;
@NotNull(message="余额不能为空")
@DecimalMax(value="30.50",message="余额不能超过30.5")
@DecimalMin(value="1.50",message="余额不能低于1.5")
privateBigDecimalamount;
@NotNull(message="生日不能为空")
@Past(message="生日必须是过去")
privateDatebirthday;
@NotBlank(message="邮箱不能为空")
@Email(message="邮箱格式不正确")
privateStringemail;
@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="手机号格式错误")
privateStringphone;
}
然后在controller的每个接口中使用@Validated和BindingResult类
@Validated注解用于验证一个入参,验证之后的消息绑定到BindingResult类中:
@PostMapping("/test")
@ApiOperation(value="测试",notes="",response=Result.class)
publicResulttest(@ApiParam(name="test",value="参数",required=true)@Validated@RequestBodyTesttest,BindingResultbindingResult){
if(bindingResult.hasErrors()){
StringerrorMsg=bindingResult.getFieldError().getDefaultMessage();
returnResult.error(errorMsg);
}
returnResult.ok("参数验证通过");
}
这样使用注解来验证参数就很方便了,不用再写代码去验证入参了
但是有一个问题,@Pattern注解中的正则只能写死到注解里面,没法提取出来,现在还不知道怎么解决
希望知道解决方法的大佬评论解答一下O(∩_∩)O
本文内容总结:SpringBoot注解验证参数,
原文链接:https://www.cnblogs.com/javafucker/p/9935095.html