1. 程式人生 > >SpringMVC資料校驗註解

SpringMVC資料校驗註解

@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";
        }
}