@AssertFalse 被注解的元素必須為false
@AssertTrue 被注解的元素必須為false
@DecimalMax(value) 被注解的元素必須為一個數字,其值必須小於等於指定的最小值
@DecimalMin(Value) 被注解的元素必須為一個數字,其值必須大於等於指定的最小值
@Digits(integer=, fraction=) 被注解的元素必須為一個數字,其值必須在可接受的范圍內
@Future 被注解的元素必須是日期,檢查給定的日期是否比現在晚.
@Max(value) 被注解的元素必須為一個數字,其值必須小於等於指定的最小值,檢查該值是否小於或等於約束條件中指定的最大值. 會給對應的數據庫表字段添加一個check的約束條件.
@Min 被注解的元素必須為一個數字,其值必須大於等於指定的最小值,檢查該值是否大於或等於約束條件中規定的最小值. 會給對應的數據庫表字段添加一個check的約束條件.
@NotNull 被注解的元素必須不為null
@Null 被注解的元素必須為null
@Past(java.util.Date/Calendar); 被注解的元素必須過去的日期,檢查標注對象中的值表示的日期比當前早.
@Pattern(regex=, flag=) 被注解的元素必須符合正則表達式,檢查該字符串是否能夠在match指定的情況下被regex定義的正則表達式匹配.
@Size(min=, max=) 被注解的元素必須在制定的范圍(數據類型:String, Collection, Map and arrays)
@Valid 遞歸的對關聯對象進行校驗, 如果關聯對象是個集合或者數組, 那么對其中的元素進行遞歸校驗,如果是一個map,則對其中的值部分進行校驗.
@CreditCardNumber 對信用卡號進行一個大致的驗證
@Email 被注釋的元素必須是電子油箱地址
@Length(min=, max=) 被注解的對象必須是字符串的大小必須在制定的范圍內。
@NotBlank 被注解的對象必須為字符串,不能為空,檢查時會將空格忽略
@NotEmpty 被注釋的對象必須為空(數據:String,Collection,Map,arrays)
@Range(min=, max=) 被注釋的元素必須在合適的范圍內 (數據:BigDecimal, BigInteger, String, byte, short, int, long and 原始類型的包裝類 )
@SafeHtml(whitelistType=, additionalTags=)被注解的元素檢查是否標注值包含惡意的片段如
@ScriptAssert(lang=, script=, alias=) 任何類型,要使用這個約束條件,必須先要保證Java Scripting API 即JSR223 ("Scripting for the JavaTM Platform")的實現在類路徑當中. 如果使用的時Java 6的話,則不是問題, 如果是老版本的話, 那么需要把JSR223的實現添加進類路徑. 這個約束條件中的表達式可以使用任何兼容JSR223的腳本來編寫. (更多信息請參考javadoc)
@URL(protocol=, host=, port=, regexp=, flags=) 被注解的對象必須是字符串,檢查是否是一個有效的URL,如果提供了protocol,host等,則該URL還需滿足提供的條件
在controller中獲取驗證信息
@RequestMapping("/register")
public String register(@Valid User user, BindingResult bindingResult,HttpServletRequest request){
if (bindingResult.hasErrors()) {
List<fielderror> fieldErrors = bindingResult.getFieldErrors();
for ( FieldError fieldError:fieldErrors){
//fieldError.getField()獲取屬性名
//fieldError.getDefaultMessage()獲取錯誤信息
request.getSession().setAttribute("err_"+fieldError.getField(),fieldError.getDefaultMessage());
}
return "register";
}else{
return "index";
}
}