學習這條路沒有捷徑可走。願咱們一直堅持不懈的走下去,初心不忘!java
數據校驗 也叫 數據驗證spring
比較經常使用的 Hibernate validaterapi
1.引jar包 4個mvc
<!--數據驗證-->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>4.0.1.GA</version>
</dependency>
<!--jboss logging-->
<dependency>
<groupId>org.jboss.logging</groupId>
<artifactId>jboss-logging</artifactId>
<version>3.3.0.Final</version>
</dependency>
<!--validation api-->
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.0.0.GA</version>
</dependency>
<!--slf4j api 日誌接口-->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.21</version>
</dependency>
2.配置驗證器
<!-- 驗證器 -->
<bean id="myValidator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
<property name="providerClass" value="org.hibernate.validator.HibernateValidator"></property>
</bean>
<!-- MVC註解驅動 -->
<mvc:annotation-driven validator="myValidator"></mvc:annotation-driven>
3在Model上打標記
public class UserInfo {
//需是0~100之間
@Min(value = 0,message = "成績最小值爲{value}")
@Max(value = 100,message = "成績最大值爲{value}")
private Integer score;
@NotEmpty(message = "用戶不能爲空")
@Size(min = 4,message = "名稱至少4個")
private String name;
@NotEmpty(message = "手機號不能爲空")
@Pattern(regexp = "^1[3,4,5,6,7,8,9]\\d{9}$",message = "手機號碼不正確")
private String phone;
public Integer getScore() {
return score;
}
public void setScore(Integer score) {
this.score = score;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
}
4 在Controller方法中
植入二個參數app
@Controller
public class FirstController {
@RequestMapping("/first")
public ModelAndView doFirst(@Valid UserInfo info, BindingResult br) {
ModelAndView mv = new ModelAndView();
mv.setViewName("/WELCOME.jsp");
//偵測錯誤驗證總數的方法
int errorcount = br.getErrorCount();
if (errorcount > 0) {
FieldError score = br.getFieldError("score");
FieldError name = br.getFieldError("name");
FieldError phone = br.getFieldError("phone");
if (score != null) {
mv.addObject("scoremsg", score.getDefaultMessage());
}
if (name != null) {
mv.addObject("namemsg", name.getDefaultMessage());
}
if (phone != null) {
mv.addObject("phonemsg", phone.getDefaultMessage());
}
mv.setViewName("/index.jsp");
}
return mv;
}
}