天天看點

SpringMVC-伺服器表單校驗及錯誤資訊回顯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包

SpringMVC-伺服器表單校驗及錯誤資訊回顯SpringMVC-伺服器表單校驗

 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>
           

繼續閱讀