SpringMVC後臺數據校驗
阿新 • • 發佈:2018-03-31
年齡 frame drive efault email api 後臺 inter phone
第①步:引入依賴
<!--數據校驗--> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator</artifactId> <version>4.3.1.Final</version> </dependency> <!--validation api--> <dependency> <groupId>javax.validation</groupId> <artifactId>validation-api</artifactId> <version>1.0.0.GA</version> </dependency>
第②步:配置Spring.xml
<!--:參數方法名解析器--> <bean id="methodNameResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/"/> <property name="suffix" value=".jsp"/> </bean> <!--掃描包下所有的被標註的類--> <context:component-scan base-package="cn.happy.day15Validator"/> <!--配置驗證器--> <bean id="myvalidator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"> <property name="providerClass" value="org.hibernate.validator.HibernateValidator"/> </bean> <!--綁定驗證器--> <mvc:annotation-driven validator="myvalidator"/>
第③步:實體類註解
package cn.happy.day15Validator; import org.hibernate.validator.constraints.NotEmpty; import javax.validation.constraints.Max; import javax.validation.constraints.Min; import javax.validation.constraints.Pattern; import javax.validation.constraints.Size; /** * Created by Administrator on 2018/3/31. */ public class UserInfo { /** * Min:設置最小值 * Max:設置最大值 * Message:打印信息 */ //指定年齡在18-120之間 @Min(value = 18,message = "年齡不能小於18歲") @Max(value = 120,message = "年齡不能大於100歲") private Integer age; /** * 三種驗證方式 * @NotEmpty 用於集合 * @NotNull 用於基本類型 * @NotBlank 用於引用類型 * @Size 設置大小 */ //非空驗證 @NotEmpty(message = "用戶名不能為空") @Size(max = 20,min = 6,message = "用戶名不能大於20個字符或小於6個字符") private String name; /** * @Pattern rehexp匹配正則 */ @NotEmpty(message = "郵箱不能為空") @Pattern(regexp = "^\\w+@\\w+/.\\w+$",message = "郵箱格式錯誤") private String email; @Pattern(regexp = "^1[35789]\\d{9}$",message = "手機號格式錯誤") private String phone; public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
第④步:配置處理器
import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.validation.BindingResult; import org.springframework.validation.FieldError; import org.springframework.web.bind.annotation.RequestMapping; import javax.validation.Valid; import java.text.SimpleDateFormat; import java.util.Date; /** * Created by Administrator on 2018/3/30. */ @Controller public class FirstController { @RequestMapping("/first") /** * @Valid 驗證對象 * BindingResult 綁定結果 * Model 視圖對象 */ public String doFirst(@Valid UserInfo userInfo, BindingResult br, Model mv) throws Exception { //判斷br中的錯誤數 if(br.getErrorCount()>0){ //證明至少有一個數據錯誤 //獲取信息 FieldError name = br.getFieldError("name"); FieldError age = br.getFieldError("age"); FieldError phone = br.getFieldError("phone"); FieldError email = br.getFieldError("email"); //獲取錯誤信息 if(name!=null){ String namemsg = name.getDefaultMessage(); //把錯誤信息返回到頁面 mv.addAttribute("namemsg",namemsg); } if(age!=null){ String agemsg = age.getDefaultMessage(); mv.addAttribute("agemsg",agemsg); } if(phone!=null){ String phonemsg = phone.getDefaultMessage(); mv.addAttribute("phonemsg",phonemsg); } if(email!=null){ String emailmsg = email.getDefaultMessage(); mv.addAttribute("emailmsg",emailmsg); } //返回請求View return "Validator"; } return "doSecond"; } }
配置完成!
SpringMVC後臺數據校驗