表单如下,注册qq为例
<form action="<%=basePath %>/register2.shtml" method="post"> <table> <tr> <td>昵称</td> <td> <input type="text" name="nick" placeholder="请输入4-10位汉字"> <span style="color:red;">${requestScope.errorMessage.nick }</span> </td> </tr> <tr> <td>密码</td> <td> <input type="password" name="password" placeholder="请输入3-6位数字、字母、下划线组合">${requestScope.errorMessage.password } </td> </tr> <tr> <td>手机号码</td> <td> <input type="text" name="phone" placeholder="请输入正确的手机格式"> </td> </tr> <tr> <td>邮箱</td> <td><input type="text" name="email" placeholder="请输入正确的邮箱格式"></td> </tr> <tr> <td>年龄</td> <td><input type="text" name="age" placeholder="请输入数字"></td> </tr> <tr> <td colspan="2"><input type="submit" value="注册"><input type="reset" value="重置"></td> </tr> </table> </form> |
第一步:导入校验的jar包
第二步:springmvc.xml中配置
<!-- 配置hibernate-validator --> <mvc:annotation-driven validator="validator"/> <bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"> <property name="providerClass" value="org.hibernate.validator.HibernateValidator" /> </bean> |
第三步:在接收参数的实体类前添加校验的注解
public class QQ { @NotNull(message = "亲,您没有填写昵称") @Pattern(regexp = "[\\u4e00-\\u9fa5]{4,10}", message = "*昵称必须为4-10位汉字") private String nick;// 昵称 @Pattern(regexp = "\\w{3,6}", message = "*密码必须为3-6位字母、数字或者下划线组合") private String password;// 密码 private String phone;// 手机号 @Email(message = "对不起,您输入的邮箱格式有误") private String email;// 邮箱 @Min(value = 1, message = "亲,您还没出生吧") @Max(value = 150, message = "亲,您还没挂么") private Integer age;// 年龄(1-150) |
@RequestMapping("register1") public String register2(@Valid QQ qqInfo, BindingResult errorResult, Model model) { // 调用校验数据的工具类 Map<String, Object> resultMap = Validator.fieldValidate(errorResult); if (resultMap == null) {// 数据正确 return "front/regiter_success.jsp"; } else {// 数据错误 model.addAttribute("errorMessage", resultMap); return "front/register.jsp"; } }
|