一、实现格式控制
1、@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(value) 被注释的元素必须符合指定的正则表达式hibernate对这个规范做了实现和扩展;
@Email 被注释的元素必须是电子邮箱地址
@Length 被注释的字符串的大小必须在指定的范围内
@NotEmpty 被注释的字符串的必须非空
@Range 被注释的元素必须在合适的范围内
2、例:对QQ,Email,Zip实现控制
@Email(message="{errors.email}")
private String email;
@Digits(fraction = 0, integer = 11,message="{errors.qq}")
private String qq;
@Digits(fraction = 0, integer = 6,message="{errors.zip}")
@Length(min=6,max=6,message="{errors.zip}")
private String zip;
二、输入错误,刷新后输入框中的错误信息仍显示(以“添加销售订单信息”为例)
1、PlaceOrderController.java中
model.addAttribute("placeOrderForm", placeOrderForm); -----用于暂存表单提交信息
2、addPlaceOrder.jsp中,用于获取消息
<td style="background-color: #f9f9f9;">手机<span style="color:red;"> *</span></td> <td><input name="mobile" class="form-control" value="${placeOrderForm.mobile }"/></td>
三、输入格式判断
1、PlaceOrderForm.java中
@NotEmpty(field="手机", message="{errors.required}") ---不为空 @Length(min=11,max=11,message="{errors.lengthmobile}") ----长度为11位 private String mobile; @Digits(fraction = 0, integer = 6,message="{errors.zip}") ----数字格式 @Length(min=6,max=6,message="{errors.length}") ----长度必须为6位 private String zip; @Pattern(regexp = "(([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[18]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-09)",message="{errors.date}") -----判断日期格式 private String orderDate;
2、ValidationMessage.properties
errors.required={field} 为必须输入项目 errors.email=email 格式不正确 errors.qq=qq 格式不正确 errors.zip=zip 必须为数字格式 errors.length=zip 长度必须为六位 errors.lengthmobile=请输入有效的手机号 errors.mobile=手机输入格式不正确 errors.date=日期格式不正确
四、输入错误后重新输入时错误输入的内容为红色显示或文本框变为红色
1、新建一个common.css文件
.error { background-color:pink; ----背景为pink display:inline;color:blue; ----字体为blue }
2、在addPlaceOrder.jsp中添加及修改
<!-- 用于错误提示框 --> <link href="css/common.css" rel="stylesheet">
将以下代码 <td style="background-color: #f9f9f9;">联系人<span style="color: red;"> *</span></td> <td><input name="contacts" class="form-control" value="${placeOrderForm.contacts }" /> </td> 改为下面的格式 <td style="background-color: #f9f9f9;">联系人<span style="color: red;"> *</span></td> <td><form:input path="contacts" cssclass="form-control" cssErrorClass="form-control error" value="${placeOrderForm.contacts }" /> </td>
标签改为<form: input /> name改为path class改为cssclass 添加cssErrorClass="form-control error"