使用注解
一、準備校驗時使用的jar
validation-api-1.0.0.ga.jar:jdk的接口;
hibernate-validator-4.2.0.final.jar是對上述接口的實作;
log4j、slf4j、slf4j-log4j
二、編寫需要校驗的bean
三、校驗方法


備注:這裡一個@valid的參數後必須緊挨着一個bindingresult 參數,否則spring會在校驗不通過時直接抛出異常
前台可以使用spring的标簽庫也可以自己自定義處理
spring标簽庫的用法:


四、開啟spring的valid功能
五、jsr303定義的校驗類型

空檢查
@null 驗證對象是否為null
@notnull 驗證對象是否不為null, 無法查檢長度為0的字元串
@notblank 檢查限制字元串是不是null還有被trim的長度是否大于0,隻對字元串,且會去掉前後空格.
@notempty 檢查限制元素是否為null或者是empty.
booelan檢查
@asserttrue 驗證 boolean 對象是否為 true
@assertfalse 驗證 boolean 對象是否為 false
長度檢查
@size(min=, max=) 驗證對象(array,collection,map,string)長度是否在給定的範圍之内
@length(min=, max=) validates that the annotated string is between min and max included.
日期檢查
@past 驗證 date 和 calendar 對象是否在目前時間之前
@future 驗證 date 和 calendar 對象是否在目前時間之後
@pattern 驗證 string 對象是否符合正規表達式的規則
數值檢查,建議使用在stirng,integer類型,不建議使用在int類型上,因為表單值為“”時無法轉換為int,但可以轉換為stirng為"",integer為null
@min 驗證 number 和 string 對象是否大等于指定的值
@max 驗證 number 和 string 對象是否小等于指定的值
@decimalmax 被标注的值必須不大于限制中指定的最大值. 這個限制的參數是一個通過bigdecimal定義的最大值的字元串表示.小數存在精度
@decimalmin 被标注的值必須不小于限制中指定的最小值. 這個限制的參數是一個通過bigdecimal定義的最小值的字元串表示.小數存在精度
@digits 驗證 number 和 string 的構成是否合法
@digits(integer=,fraction=) 驗證字元串是否是符合指定格式的數字,interger指定整數精度,fraction指定小數精度。
@range(min=, max=) checks whether the annotated value lies between (inclusive) the specified minimum and maximum.
@range(min=10000,max=50000,message="range.bean.wage")
private bigdecimal wage;
@valid 遞歸的對關聯對象進行校驗, 如果關聯對象是個集合或者數組,那麼對其中的元素進行遞歸校驗,如果是一個map,則對其中的值部分進行校驗.(是否進行遞歸驗證)
@creditcardnumber信用卡驗證
@email 驗證是否是郵件位址,如果為null,不進行驗證,算通過驗證。
@scriptassert(lang= ,script=, alias=)
@url(protocol=,host=, port=,regexp=, flags=)

六、自定義校驗類型
使用接口