第①步:引入依赖
1<!--数据校验--> 2 <dependency> 3 <groupId>org.hibernate</groupId> 4 <artifactId>hibernate-validator</artifactId> 5 <version>4.3.1.Final</version> 6 </dependency> 7 8 <!--validation api--> 9 <dependency> 10 <groupId>javax.validation</groupId> 11 <artifactId>validation-api</artifactId> 12 <version>1.0.0.GA</version> 13 </dependency>
第②步:配置Spring.xml
1<!--:参数方法名解析器--> 2 <bean id="methodNameResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 3 <property name="prefix" value="/"/> 4 <property name="suffix" value=".jsp"/> 5 </bean> 6 <!--扫描包下所有的被标注的类--> 7 <context:component-scan base-package="cn.happy.day15Validator"/> 8 9 <!--配置验证器--> 10 <bean id="myvalidator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"> 11 <property name="providerClass" value="org.hibernate.validator.HibernateValidator"/> 12 </bean> 13 14 <!--绑定验证器--> 15 <mvc:annotation-driven validator="myvalidator"/>
第③步:实体类注解
1package cn.happy.day15Validator; 2 3import org.hibernate.validator.constraints.NotEmpty; 4import javax.validation.constraints.Max; 5import javax.validation.constraints.Min; 6import javax.validation.constraints.Pattern; 7import javax.validation.constraints.Size; 8 9 10/** 11 * Created by Administrator on 2018/3/31. 12 */ 13public class UserInfo { 14 15 /** 16 * Min:设置最小值 17 * Max:设置最大值 18 * Message:打印信息 19 */ 20 //指定年龄在18-120之间 21 @Min(value = 18,message = "年龄不能小于18岁") 22 @Max(value = 120,message = "年龄不能大于100岁") 23 private Integer age; 24 25 /** 26 * 三种验证方式 27 * @NotEmpty 用于集合 28 * @NotNull 用于基本类型 29 * @NotBlank 用于引用类型 30 * @Size 设置大小 31 */ 32 //非空验证 33 @NotEmpty(message = "用户名不能为空") 34 @Size(max = 20,min = 6,message = "用户名不能大于20个字符或小于6个字符") 35 private String name; 36 37 /** 38 * @Pattern rehexp匹配正则 39 */ 40 @NotEmpty(message = "邮箱不能为空") 41 @Pattern(regexp = "^\\w+@\\w+/.\\w+$",message = "邮箱格式错误") 42 private String email; 43 44 @Pattern(regexp = "^1[35789]\\d{9}$",message = "手机号格式错误") 45 private String phone; 46 47 public String getPhone() { 48 return phone; 49 } 50 51 public void setPhone(String phone) { 52 this.phone = phone; 53 } 54 55 public String getEmail() { 56 return email; 57 } 58 59 public void setEmail(String email) { 60 this.email = email; 61 } 62 63 64 public Integer getAge() { 65 return age; 66 } 67 68 public void setAge(Integer age) { 69 this.age = age; 70 } 71 72 public String getName() { 73 return name; 74 } 75 76 public void setName(String name) { 77 this.name = name; 78 } 79 80}
第④步:配置处理器
1import org.springframework.stereotype.Controller; 2import org.springframework.ui.Model; 3import org.springframework.validation.BindingResult; 4import org.springframework.validation.FieldError; 5import org.springframework.web.bind.annotation.RequestMapping; 6 7import javax.validation.Valid; 8import java.text.SimpleDateFormat; 9import java.util.Date; 10 11/** 12 * Created by Administrator on 2018/3/30. 13 */ 14@Controller 15public class FirstController { 16 17 @RequestMapping("/first") 18 /** 19 * @Valid 验证对象 20 * BindingResult 绑定结果 21 * Model 视图对象 22 */ 23 public String doFirst(@Valid UserInfo userInfo, BindingResult br, Model mv) throws Exception { 24 //判断br中的错误数 25 if(br.getErrorCount()>0){ //证明至少有一个数据错误 26 //获取信息 27 FieldError name = br.getFieldError("name"); 28 FieldError age = br.getFieldError("age"); 29 FieldError phone = br.getFieldError("phone"); 30 FieldError email = br.getFieldError("email"); 31 32 //获取错误信息 33 if(name!=null){ 34 String namemsg = name.getDefaultMessage(); 35 //把错误信息返回到页面 36 mv.addAttribute("namemsg",namemsg); 37 } 38 if(age!=null){ 39 String agemsg = age.getDefaultMessage(); 40 mv.addAttribute("agemsg",agemsg); 41 } 42 if(phone!=null){ 43 String phonemsg = phone.getDefaultMessage(); 44 mv.addAttribute("phonemsg",phonemsg); 45 } 46 if(email!=null){ 47 String emailmsg = email.getDefaultMessage(); 48 mv.addAttribute("emailmsg",emailmsg); 49 } 50 //返回请求View 51 return "Validator"; 52 } 53 return "doSecond"; 54 } 55 56}
配置完成!
阿里云年末钜惠,27款产品低至2折,有需要的可以看一下https://m.aliyun.com/act/team1212?params=N.rLGEYu0Jk2