一、添加架包和配置web.xml配置
二、SpringMVC的配置中配置相關的校驗配置
方式一:
<!-- 1、配置資源文件 -->
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<!-- 配置本地資源文件的基本名 -->
<property name="basenames">
<list>
<!-- 這裏的classpath:的名字是錯誤信息文件的名字,注意:這裏不用加後綴名 -->
<value>classpath:CustomValidationMessage</value>
</list>
</property>
<!-- 配置文件編碼 -->
<property name="fileEncodings" value="UTF-8"></property>
<!-- 配置文件存放是時間--><property name="cacheSeconds" value="120"></property>
</bean>
<!--2、 配置校驗器(本地校驗器) -->
<bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
<!-- 配置提供者 -->
<property name="providerClass" value="org.hibernate.validator.HibernateValidator"/>
<!-- 配置校驗資源文件(校驗信息來源) -->
<property name="validationMessageSource" ref="messageSource"/>
</bean>
<!-- 3、配置webBinder -->
<bean id="customBinder" class="org.springframework.web.bind.support.ConfigurableWebBindingInitializer">
<property name="validator" ref="validator"></property>
</bean>
<!--適配器-->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<!-- 4、在這種配置中需要在handlerAdapter中配置WebBindingInitializer -->
<property name="webBindingInitializer" ref="customBinder"></property>
</bean>
方式二:
<!--3、 配置註解驅動 引用校驗器 (切記一定要放在首位,不然無法實現,有時候若需調動位置則應調動)-->
<mvc:annotation-driven validator="validator"/>
<!--1、 配置資源文件 -->
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<!-- 配置本地資源文件的基本名 -->
<property name="basenames">
<list>
<!-- 這裏的classpath:的名字是錯誤信息文件的名字,注意:這裏不用加後綴名 -->
<value>classpath:CustomValidationMessage</value>
</list> </property>
<!-- 配置文件編碼 --> <property name="fileEncodings" value="UTF-8"></property>
<!-- 配置文件存放是時間--> <property name="cacheSeconds" value="120"></property>
</bean> <!--/2、配置校驗器(本地校驗器) -->
<bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
<!-- 配置提供者 --> <property name="providerClass" value="org.hibernate.validator.HibernateValidator"/>
<!-- 配置校驗資源文件(校驗信息來源) --> <property name="validationMessageSource" ref="messageSource"/>
</bean>
三、定義錯誤信息的文件
四、在實體類中使用內部校驗規範
private Integer sid;
@Size(max=10,min=4,message="{length.error}") //名字的長度最小爲4個字符,最大爲10個字符,否則出現錯誤信息length.error
private String sname;
private String sex;
private Integer age;
@NotNull(message="{notnull}") //這裏是不能爲空null
@NotEmpty(message="{notnull}") //這裏是不能爲空白字符串
private String addr;
補充:validation有如下校驗規則:
5、在控制器中獲取錯誤信息幷包裝到model中
@RequestMapping("/add")
public String add(Model model,@Validated Student st,BindingResult result)throws Exception{
System.out.println("st:"+st);
if(result.hasErrors()){
for(ObjectError oe:result.getAllErrors())System.out.println(oe);
model.addAttribute("error", result.getAllErrors());
return "add";
}
return "redirect:list.action";
}
6、在JSP頁面顯示錯誤信息
<h3>添加</h3>
<div class="col-md-6">
<c:forEach items="${error }" var="e">
${e.defaultMessage } //顯示錯誤信息
</c:forEach>
<form action="add.action" method="post">