SpringMVC—Validation校验

来源:互联网 发布:mysql 数据导入 编辑:程序博客网 时间:2024/04/29 11:06

一、添加架包和配置web.xml配置

在SPringMVC的基本架包上再添加以下架包

web.xml配置详情见SpringMVC的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.errorprivate 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">

原创粉丝点击