当前位置: 首页 > 编程笔记 >

JavaBean valication验证实现方法示例

施景同
2023-03-14
本文向大家介绍JavaBean valication验证实现方法示例,包括了JavaBean valication验证实现方法示例的使用技巧和注意事项,需要的朋友参考一下

本文实例讲述了JavaBean valication验证实现方法。分享给大家供大家参考,具体如下:

在实际项目中,会遇到对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位。
@Email 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中进行各种验证,只有当所有的都校验成功后,才会往下走。

更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》

希望本文所述对大家java程序设计有所帮助。

 类似资料:
  • 本文向大家介绍validform表单验证的实现方法,包括了validform表单验证的实现方法的使用技巧和注意事项,需要的朋友参考一下 validform插件主要把所有的验证条件和验证提示信息绑定到每个表单元素,这种形式非常方便,下面写法更加智能得到label内容来提示 validform有什么用? 网页上有大量的input需要你进行验证的时候,如果是弹窗的话,需要不停地判断,如果为空,弹窗。如果

  • 本文向大家介绍ThinkPHP3.2.1图片验证码实现方法,包括了ThinkPHP3.2.1图片验证码实现方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了ThinkPHP3.2.1图片验证码实现方法。分享给大家供大家参考,具体如下: 今天用到图片验证码的功能,在网上找到ThinkPHP的以下代码: 添加到Controller中,通过地址“http://localhost/index.p

  • 本文向大家介绍php中文验证码实现方法,包括了php中文验证码实现方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php中文验证码实现方法。分享给大家供大家参考。具体分析如下: 先看如下效果图: 具体代码如下: 希望本文所述对大家的php程序设计有所帮助。

  • 本文向大家介绍asp.net登录验证码实现方法,包括了asp.net登录验证码实现方法的使用技巧和注意事项,需要的朋友参考一下 前端添加的标签和方法: 验证码: 然后在项目中在新建一个VerifyCode.aspx,下面是aspx的代码: 接着是aspx.cs的代码: 于是!就可以生成验证码了,然后自己再把编写验证版的判断逻辑写好就可以啦! 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望

  • 本文向大家介绍Android中验证码倒计时的简单实现方法示例,包括了Android中验证码倒计时的简单实现方法示例的使用技巧和注意事项,需要的朋友参考一下 前言 现在的很多app都是使用手机注册的,为了确认使用的是自己的手机,都会加上一个短线验证码的选项,最近公司的项目使用到了这个短信验证码,并且要加入验证码倒计时功能,也就是60秒才能发送一次验证码,再次做过记录,以后使用的时候,可以随时拿来用。

  • 本文向大家介绍vue + typescript + 极验登录验证的实现方法,包括了vue + typescript + 极验登录验证的实现方法的使用技巧和注意事项,需要的朋友参考一下 此功能基于vue(v2.6.8) + typescript(v3.3.3333), 引入极验(geetest v3+)(官方api),使用其product: 'bind'模式, 页面挂载后初始化ininGeetest