Java SpringBoot 實體類數據自動驗證

package demo.dto;

import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotEmpty;
import java.io.Serializable;

public class ProductDto implements Serializable {
    @NotEmpty(message = "姓名 不容許爲空")
    @Length(min = 2, max = 10, message = "姓名 長度必須在 {min} - {max} 之間")
    private String userName;

    @NotEmpty(message = "密碼 不容許爲空")
    private String password;

    @NotEmpty(message = "真實姓名 不容許爲空")
    private String realName;

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName == null ? null : userName.trim();
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password == null ? null : password.trim();
    }

    public String getRealName() {
        return realName;
    }

    public void setRealName(String realName) {
        this.realName = realName == null ? null : realName.trim();
    }
    /**
     *
     @NotEmpty,@NotNull和@NotBlank的區別
     1 @NotEmpty :不能爲null,且Size>0

     2 @NotNull:不能爲null,但能夠爲empty,沒有Size的約束

     3 @NotBlank:只用於String,不能爲null且trim()以後size>0
     *
     @NotNull
     使用該註解的字段的值不能爲null,不然驗證沒法經過。

     @Null
     修飾的字段在驗證時必須是null,不然驗證沒法經過。

     @Size
     以下代碼表示,修飾的字段長度不能超過5或者低於。

     @Size(min = 1, max = 5)
     private String name;
     1
     2
     @Max
     以下代碼表示,該字段的最大值爲19,不然沒法經過驗證。
     @Max(value = 19)
     private Integer age;
     1
     2
     @Min
     同理,被該註解修飾的字段的最小值,不能低於某個值。

     @AssertFalse
     該字段值爲false時,驗證才能經過。

     @AssertTrue
     該字段值爲true時,驗證才能經過。

     @DecimalMax
     驗證小數的最大值。

     @DecimalMax(value = "12.35")
     private double money;
     1
     2
     @DecimalMin
     驗證小數的最小值。

     @Digits
     驗證數字的整數位和小數位的位數是否超過指定的長度。

     @Digits(integer = 2, fraction = 2)
     private double money;
     1
     2
     @Future
     驗證日期是否在當前時間以後,不然沒法經過校驗。
     @Future
     private Date date;
     1
     2
     @Past
     驗證日期是否在當前時間以前,不然沒法經過校驗。

     @Pattern
     用於驗證字段是否與給定的正則相匹配。

     @Pattern(regexp = "[abc]")
     private String name;
     */

}

  

package demo.entity;

import java.io.Serializable;

public class Product implements Serializable {
    private Integer id;

    private String userName;

    private String password;

    private String realName;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }


    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName == null ? null : userName.trim();
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password == null ? null : password.trim();
    }

    public String getRealName() {
        return realName;
    }

    public void setRealName(String realName) {
        this.realName = realName == null ? null : realName.trim();
    }

    @Override
    public String toString() {
        return "Product{" +
                "id=" + id +
                ", username='" + userName + '\'' +
                ", password='" + password + '\'' +
                ", realname='" + realName + '\'' +
                '}';
    }
}
//添加數據
    @RequestMapping("/addproduct")
    public Object addproduct(@Valid ProductDto model, BindingResult result) {
        int errorCount = result.getErrorCount();
        MessagePack messagePack = new MessagePack();
        // 驗證字段是否符合規則
        if (result.hasErrors()) {
            throw new RuntimeException(result.getFieldError().getDefaultMessage());
        } else {
            Product product = new Product();
            BeanUtils.copyProperties(model, product);
            // 操做數據
            int i = Convert.toInt(productService.addProduct(product));
            // 判斷操做成功與否
            if (i > 0) {
                messagePack.setCode(0);
                messagePack.setMessage("新增商品成功");
                messagePack.setObject(null);
                messagePack.setStatus("OK");
            } else {
                messagePack.setCode(-1);
                messagePack.setMessage("新增商品失敗");
                messagePack.setObject(null);
                messagePack.setStatus("error");
            }
        }
        return messagePack;
    }
相關文章
相關標籤/搜索