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>