SpringMVC-服務器表單校驗及錯誤信息回顯

SpringMVC-服務器表單校驗

常用的校驗規則

Bean Validation 中內置的約束
     @Null   被註釋的元素必須爲 null       
    @NotNull    被註釋的元素必須不爲 null       
     @AssertTrue     被註釋的元素必須爲 true       
    @AssertFalse    被註釋的元素必須爲 false       
    @Min(value)     被註釋的元素必須是一個數字,其值必須大於等於指定的最小值       
     @Max(value)     被註釋的元素必須是一個數字,其值必須小於等於指定的最大值       
    @DecimalMin(value)  被註釋的元素必須是一個數字,其值必須大於等於指定的最小值       
    @DecimalMax(value)  被註釋的元素必須是一個數字,其值必須小於等於指定的最大值       
    @Size(max=, min=)   被註釋的元素的大小必須在指定的範圍內       
    @Digits (integer, fraction)     被註釋的元素必須是一個數字,其值必須在可接受的範圍內       
    @Past   被註釋的元素必須是一個過去的日期       
    @Future     被註釋的元素必須是一個將來的日期       
    @Pattern(regex=,flag=)  被註釋的元素必須符合指定的正則表達式       
Hibernate Validator 附加的約束
    @NotBlank(message =)   驗證字符串非null,且長度必須大於0       
    @Email  被註釋的元素必須是電子郵箱地址       
    @Length(min=,max=)  被註釋的字符串的大小必須在指定的範圍內       
    @NotEmpty   被註釋的字符串的必須非空       
    @Range(min=,max=,message=)  被註釋的元素必須在合適的範圍內 

使用方法:

1.導入jar包

 2.在配置文件(web.xml中)添加<mvc:annotation-driven/>

3.在javaBean中添加對應的校驗規則

@NotNull
private String username;
@Max(value=200.message="請輸入合法的年齡")
private Integer age;
@Email(message="請正確輸入郵箱")
private String email;
@Pattern(regexp="^1(3|4|5|7|8)\\d{9}$",message="請正確輸入手機號碼")
private String phone;

4.在接收表單信息的入參添加標記@vaild註解

@requestMapping("form")
public String form(@valid User user,BindingResult result){
    int errorCount = result.getErrorCount();
    if(errorCount != 0){
        //獲取校驗錯誤字段即信息
        List<FieldError>fieldErrors = result.getFieldErrors();
        for(FieldError fieldError:fieldErrors){     
                                 
        System.out.println(fieldError.getField()+":"+fieldError.getDefaultMessage());
        }
    
    }
    System.out.println(user);
    return "/result.jsp";
}

5.錯誤信息回顯頁面

使用原始表單錯誤信息寫到Model中

@requestMapping("form")
public String form(@valid User user,BindingResult result,Model model){
    int errorCount = result.getErrorCount();
    if(errorCount != 0){
        //獲取校驗錯誤字段即信息
        List<FieldError>fieldErrors = result.getFieldErrors();
        for(FieldError fieldError:fieldErrors){     
                                 
        System.out.println(fieldError.getField()+":"+fieldError.getDefaultMessage());
        model.addAttribute(fieldError.getField(),fieldError.getDefaultMessage());
        }
    
    }
    System.out.println(user);
    return "/result.jsp";
}
<from action="${pageContext.request.contextPath}/form">
    姓名:<input type="text" name="username" value="${user.username}">${username}<br>
    姓名:<input type="text" name="age" value="${user.age}">${age}<br>
    姓名:<input type="text" name="email" value="${user.email}">${email}<br>
    姓名:<input type="text" name="phone" value="${user.phone}">${phone}<br>
    <input type="submit" value="提交">

</form>

使用SpringMVC-form標籤

<!--在需要回顯信息的位置加上下面格式的內容即可-->
<fm:error path="username"></fm:error>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章