1. 程式人生 > >實體 Validator 校驗

實體 Validator 校驗

   Validator主要是校驗使用者提交的資料的合理性的,比如是否為空了,密碼長度是否大於6位,是否是純數字的,等等。那麼在spring boot怎麼使用這麼強大的校驗框架呢。

在這裡我們主要是使用註解進行學習。我們先說說我們的需求:

我們有一個demo.html,在頁面上有兩個元素 姓名輸入框,密碼輸入庫,提交按鈕。

提交到後臺之後,使用Validator進行校驗,然後如果存在錯誤,轉發到demo.html,

我們先編寫一個實體類接收使用者的輸入,以及使用Validator註解校驗:

package com.kfit.demo;

 

import

org.hibernate.validator.constraints.Length;

import org.hibernate.validator.constraints.NotEmpty;

 

public class Demo {

   

    private long id;

   

    @NotEmpty(message="姓名不能為空")

    private

String name;

   

    @NotEmpty(message="密碼不能為空")

    @Length(min=6,message="密碼長度不能小於6")

    private String password;

 

    publiclong getId() {

       return id;

    }

 

    publicvoid setId(longid) {

       this.id = id;

    }

 

    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;

    }

 

    @Override

    public String toString() {

       return "Demo [id=" + id + ", name=" + name + ", password=" + password + "]";

    }

}

這個實體類在屬性上加入了註解@NotEmpty,@Length,那麼常用的註解有:

約束註解名稱      約束註解說明

@null           驗證物件是否為空

@notnull     驗證物件是否為非空

@asserttrue       驗證 boolean 物件是否為 true

@assertfalse      驗證 boolean 物件是否為 false

@min           驗證 number 和 string 物件是否大等於指定的值

@max           驗證 number 和 string 物件是否小等於指定的值

@decimalmin    驗證 number 和 string 物件是否大等於指定的值,小數存在精度

@decimalmax    驗證 number 和 string 物件是否小等於指定的值,小數存在精度

@size           驗證物件(array,collection,map,string)長度是否在給定的範圍之內

@digits       驗證 number 和 string 的構成是否合法

@past           驗證 date 和 calendar 物件是否在當前時間之前

@future       驗證 date 和 calendar 物件是否在當前時間之後

@pattern     驗證 string 物件是否符合正則表示式的規則

@Email     驗證郵箱

 

實際例子:

@size (min=3, max=20, message="使用者名稱長度只能在3-20之間")

@size (min=6, max=20, message="密碼長度只能在6-20之間")

@pattern (regexp="[a-za-z0-9._%+-][email protected][a-za-z0-9.-]+\\.[a-za-z]{2,4}", message="郵件格式錯誤")

@Length(min = 5, max = 20, message = "使用者名稱長度必須位於520之間")  

@Email(message = "比如輸入正確的郵箱")  

@NotNull(message = "使用者名稱稱不能為空") 
@Max(value = 100, message = "年齡不能大於100") 
@Min(value= 18 ,message= "必須年滿18歲!"
 @AssertTrue(message = "bln4 must is true")

 

 @AssertFalse(message = "blnf must is falase")
@DecimalMax(value="100",message="decim最大值是100")
DecimalMin(value="100",message="decim最小值是100")
@NotNull(message = "身份證不能為空") 
@Pattern(regexp="^(\\d{18,18}|\\d{15,15}|(\\d{17,17}[x|X]))$", message="身份證格式錯誤")