標籤:jsp provider type source 手機號 郵箱 contex this can
第①步:引入依賴
<!--資料校正--> <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 = "^\\[email protected]\\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. */@Controllerpublic 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後台資料校正