springMVC校验器(validator)
2019-12-16 09:13:19来源:博客园 阅读 ()
springMVC校验器(validator)
springmvc使用的是Hibernate Validator(和Hibernate的ORM无关)来完成校验功能
1.导入jar包
2.编写校验错误配置文件
3.配置校验错误信息文件
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource"> <!-- 资源文件名,这里property的name为basenames所以错误信息的配置文件CustomValidationMessages省去后缀 --> <property name="basenames"> <list> <value>classpath:ItemValidationMessages</value> </list> </property> <!-- 资源文件编码格式 --> <property name="fileEncodings" value="UTF-8" /> <property name="defaultEncoding" value="UTF-8"/> <!-- 对资源文件内容缓存时间,单位秒 --> <property name="cacheSeconds" value="120" /> </bean>
4.配置校验器
<bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"> <!-- 指定校验器提供方 --> <property name="providerClass" value="org.hibernate.validator.HibernateValidator"/> <!-- 指定校验使用的资源文件,如果不指定默认使用classpath下的ValidationMessages.properties --> <property name="validationMessageSource" ref="messageSource"/> </bean>
5.将校验器注入到适配器中
<!-- 使用<mvc:annotation-driven>可以代替单个配置注解映射器和注解适配器 ,它默认加载很多参数绑定方法 比如json转换解析器就默认加载了,实际开发用这个 validator="":校验器注入到适配器中--> <!-- 默认的注解映射的支持 --> <mvc:annotation-driven validator="validator"></mvc:annotation-driven>
6.类属性中定义规则
@Size(min=1,max=30,message="{item.itemname.length.erro}",groups={ItemGroup1.class,ItemGroup2.class}) private String itemname; @NotNull(message="{item.price.isNULL}",groups={ItemGroup2.class}) private Double price;
7.在controller中处理数据错误
/*1.在需要校验的pojo前边添加注解@Validated,在需要校验的pojo后面添加BindingResult bindingResult接收校验出错信息 注意:@Validated和BindingResult bindingResult是配对出现的,并且形参顺序是固定的(一前一后) value={ItemGroup1.class}:指定使用ItemGroup1的分组校验*/ @RequestMapping("/editItemSubmit") public ModelAndView editItemSubmit(HttpServletRequest request,@Validated(value={ItemGroup1.class}) ItemCustom itemCustom, BindingResult bindingResult) throws Exception{ //如果有错误 if(bindingResult.hasErrors()) { //获取错误信息 List<ObjectError> allErrors = bindingResult.getAllErrors(); ModelAndView modelAndView = new ModelAndView(); //将错误信息传到jsp页面中 modelAndView.addObject("allErrors", allErrors); modelAndView.setViewName("item/editItem"); return modelAndView; }
itemService.updateItem(itemCustom);
ModelAndView modelAndView = new ModelAndView("redirect:/item/queryItems.action");
return modelAndView;
}
8.测试
原文链接:https://www.cnblogs.com/lyh233/p/12049876.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- springboot2配置JavaMelody与springMVC配置JavaMelody 2020-06-11
- 蚂蚁金服这套SpringMvc面试题你懂多少(面试必刷) 2020-05-27
- SpringMVC高级-拦截器如何正确运用?案例详解 2020-05-21
- 萌新学习SpringMVC 2020-05-20
- SpringMVC中如何获取请求参数?案例详解 2020-05-19
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash