今天就跟大家聊聊有关怎么在JavaBean中实现valication验证,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
校验注解:
valication提供了很多的校验注解,具体的参数可以去看源码,主要是message参数,要是校验不符合的时候,会返回这些自定义的不符合信息。
注解类型 | 属性值类型 | 使用说明 |
@AssertFalse | Boolean、boolean | 被注解的属性值是false。 |
@AssertTrue | Boolean、boolean | 被注解的属性值是true。 |
@DecimalMax(value) | BigDecimal、BigInteger、String、byte、short、int、long及对应类型的封装类 | 被注解的属性值必须是数字,其值必须小于或等于指定的最大值。注:参数值必须是能正确转化为BigDecimal的字符串,即,会使用new BigDecimal(String str)。 |
@DecimalMin(value) | BigDecimal、BigInteger、String、byte、short、int、long及对应类型的封装类 | 被注解的属性值必须是数字,其值必须大于或等于指定的最小值。注:参数值必须是能正确转化为BigDecimal的字符串,即,会使用new BigDecimal(String str)。 |
@Max | BigDecimal、BigInteger、byte、short、int、long及对应类型的封装类 | 被注解的属性值必须小于或等于指定的最大值。 |
@Min | BigDecimal、BigInteger、byte、short、int、long及对应类型的封装类 | 被注解的属性值必须大于或等于指定的最小值。 |
@Digits(integer=,fraction=) | BigDecimal、BigInteger、String、byte、short、int、long及对应类型的封装类 | 被注解的属性值必须是数字,且整数位最多integer位,小数位最多fraction位。 |
String | 被注解的属性值是Email地址 | |
@Negative | 被注解的属性值必须为负数。 | |
@NegativeOrZero | 被注解的属性值必须为负数或0。 | |
@Positive | 被注解的属性值必须为正数。 | |
@PositiveOrZero | 被注解的属性值必须为正数或0。 | |
@NotBlank | String | 被注解的属性值是否为非null,并且去空格之后的length大于0。与@NotEmpty的区别在于,@NotBlank只能注解字符串,并且忽略结尾空格。 |
@NotEmpty | String、Collection、Map、arrays | 被注解的属性值是否为非null或空集合。 |
@NotNull | 任意类型 | 被注解的属性值是否为非null。 |
@Null | 任意类型 | 被注解的属性值是否为null。 |
@Future | java.util.Date, java.util.Calendar; | 被注解的属性值必须是将来的一个日期。 |
@FutureOrPresent | java.util.Date, java.util.Calendar; | 被注解的属性值必须是当前或将来的一个日期。 |
@PastOrPresent | java.util.Date, java.util.Calendar; | 被注解的属性值必须是现在或过去的一个日期。 |
@Past | java.util.Date, java.util.Calendar; | 被注解的属性值必须是过去的一个日期。 |
@Size(min=, max=) | String、Collection、Map、arrays | 验证注解的元素值的在min和max(包含)指定区间之内,如字符长度、集合大小 |
注:
1 @NotEmpty :不能为null,且Size>0
2 @NotNull:不能为null,但可以为empty,没有Size的约束
3 @NotBlank:只用于String,不能为null且trim()之后size>0
接下来,我们就在postman中模拟,添加用户的信息。
1.创建一个用户Bean,并注解上相应的验证。
public class UserBean { //不为空判断 @NotEmpty(message = "用户名不能为空") private String userName; //手机正则验证 @NotEmpty (message = "电话号码不能为空") @Pattern(regexp = "^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\\d{8}$",message = "电话号码不正确") private String mobile; //数值限定大小 @NotNull(message = "年龄不能为空") @Min(message = "你未成年额!",value = 18) private Integer age; //默认匹配所有的正则,需要自己写匹配规则,使用里面的regexp参数 @Email(message = "email格式不对") private String email; public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getMobile() { return mobile; } public void setMobile(String mobile) { this.mobile = mobile; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } }
2.在controller层中对前端传过来的数据与自己写的验证校验是否正确,使用@Valid开启对对象进行校验。
@RestController public class ValidationController { @PostMapping("addUserMessage") public String addUserMessage(@Valid @RequestBody UserBean userBean,BindingResult bindingResult){ //如果表单验证错误,获取message中的信息并返回 if(bindingResult.hasErrors()){ return bindingResult.getFieldError().getDefaultMessage(); } //表单验证成功之后,可以写逻辑代码或者写入数据 return "操作成功"; } }
3.在postman中进行各种验证,只有当所有的都校验成功后,才会往下走。
看完上述内容,你们对怎么在JavaBean中实现valication验证有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。