springboot--数据校验

目录

SpringBoot实现数据校验的方法

校验方法

常用的校验方法


SpringBoot实现数据校验的方法

  • SpringBoot使用了Hibernate-validate校验框架
  • spring-boot-strarter-web启动器中已经包含了Hibernate-validate的jar包

校验方法

  • 在实体类上加上校验规则
    • public class Users {
      //    @NotBlank非空校验
      //    message属性可以指定当出现错误时,被封装进model中的value的值
          @NotBlank(message = "用户名不能为空")
          private String name;
          @NotBlank(message = "密码不能为空")
          private String password;
          private Integer age;
      
          @Override
          public String toString() {
              return "Users{" +
                      "name='" + name + '\'' +
                      ", password='" + password + '\'' +
                      ", age=" + age +
                      '}';
          }
      
          public String getName() {
              return name;
          }
      
          public void setName(String name) {
              this.name = name;
          }
      
          public String getPassword() {
              return password;
          }
      
          public void setPassword(String password) {
              this.password = password;
          }
      
          public Integer getAge() {
              return age;
          }
      
          public void setAge(Integer age) {
              this.age = age;
          }
      }
  • 在controller类中开启校验
    •     /**
           * @Valid 开启对Users的数据校验
           * @param u 需要保存的实体类
           *        bindingResult 将校验结果封装进Model中,key为被校验的对象的名称(用驼峰命名法)(本次就是users),
           * @ModelAttribute 如果想对返回错误结果的model中的key值进行重命名,可以使用该注解,并指定别名为"user"
           * @return
           */
          @RequestMapping("/save")
          public String saveUser(@ModelAttribute("user") @Valid Users u, BindingResult bindingResult){
              System.out.println(u);
      //        当bindingResult.hasErrors()==true则数据有错,校验失败
              if (bindingResult.hasErrors()){
                  return "addUser";
              }
              return "ok";
          }
  • 在页面中获取错误信息
    • <form action="/save" method="post">
          用户名:<input type="text" name="name">
          <!--刚进入页面时,应为不存在user对象,所以需要判断users是否存在,否则将抛出异常-->
          <!--此处的属性名user应该和前台传过来的一致,不然将不显示-->
          <font color="red" th:if="${user}!=null" th:errors="${user.name}"></font><br>
          密码:<input type="password" name="password">
          <font color="red" th:if="${user}!=null" th:errors="${user.password}"></font><br>
          年龄:<input type="text" name="age"><br>
          <input type="submit" value="保存">
      </form>

常用的校验方法

  • @NotBlank:判断字符串是否为null或是空串,会自动去掉首尾空格
  • @NotEmpty:判断字符串是否为null或是空串,不会自动去掉首尾空格
  • @NotNull:判断属性值是否为null
  • @Length(max=x,min=y):判断字符的长度(最大为x,最小为y)
  •     @Length(max = 8,min = 6,message = "密码太短")
        private String password;
  • @Min:用于对数值的判断,指定最小值
  • @Max:用于对数值的判断,指定最大值
  • @Email:判断邮箱是否合法

猜你喜欢

转载自blog.csdn.net/zyp1376308302/article/details/82767335