Spring MVC Hibernate-Validator数据验证实例
2023-06-13 09:12:00 时间
创建 springMVCDemo09 应用,该应用实现的功能与《Spring MVC验证器应用实例》节中的 springMVCDemo08 应用相同。springMVCDemo09 所需的 JAR 包如图 1 所示。
图 1 springMVCDemo09的JAR包
图 1 springMVCDemo09的JAR包
在 springMVCDemo09 应用中不需要创建验证器类 GoodsValidator。另外,Service 层、View 层以及错误消息属性文件都与 springMVCDemo08 应用的相同。与 springMVCDemo08 应用的实现不同的是模型类、控制器类和 Spring MVC 的核心配置文件,具体如下:
1)模型类在模型类 Goods 中利用 JSR 303 的标注类型对属性进行验证,具体代码如下:
public class Goods { //goods.gname.required错误消息 key(国际化后对应的就是国际化的信息) @NotBlank(message= {goods.gname.required} ) private String gname; @NotBlank(message= {goods.gdesciption.required} ) private String gdescription; @Range(min=0,max=100,message= {gprice.invalid} ) private double gprice; // 日期格式化(需要在配置文件中配置FormattingConversionServiceFactoryBean) @DateTimeFormat(pattern = yyyy-MM-dd ) @Past(message= {gdate.invalid} ) private Date gdate; //省略setter和getter方法
}
2)控制器类在控制器类 GoodsController 中使用 @Valid 对模型对象进行验证,具体代码如下:
package controller; import javax.annotation.Resource; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.validation.BindingResult; import org.springframework.validation.Validator; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import pojo.Goods; import service.GoodsService; @Controller @RequestMapping( /goods ) public class GoodsController { // 得到一个用来记录日志的对象,这样在打印信息的时候能够标记打印的是哪个类的信息 private static final Log logger = LogFactory.getLog(GoodsController.class); @Autowired private GoodsService goodsService; @RequestMapping( /input ) public String input(Model model) { // 如果model中没有goods属性,addGoods.jsp会抛出异常 // 因为表单标签无法找到modelAttribute属性指定的form backing object model.addAttribute( goods , new Goods()); return addGoods @RequestMapping( /save ) public String save(@ModelAttribute Goods goods, BindingResult result,Model model) { if (result.hasErrors()) { return addGoods goodsService.save(goods); logger.info( 添加成功 model.addAttribute( goodsList , goodsService.getGoods()); return goodsList }3)配置文件
配置文件 springmvc-servlet.xml 的代码如下:
?xml version= 1.0 encoding= UTF-8 ? beans xmlns= http://www.springframework.org/schema/beans xmlns:xsi= http://www.w3.org/2001/XMLSchema-instance xmlns:mvc= http://www.springframework.org/schema/mvc xmlns:p= http://www.springframework.org/schema/p xmlns:context= http://www.springframework.org/schema/context xsi:schemaLocation= http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd !-- 使用扫描机制扫描包 -- context:component-scan base-package= controller / context:component-scan base-package= service / !-- 配置消息属性文件 -- bean id= messageSource http://c.biancheng.net/hibernate/ target=_blank rel="noopener">HibernateValidator / !-- 指定校验使用的资源文件,在文件中配置校验错误信息,如果不指定则默认使用 classpath下的 VaiidationMessages.properties -- property name= validationMessageSource ref= messageSource / /bean !--开启 Spring的 Valid 功能 -- mvc:annotation-driven conversion-service= conversionService validator= validator / !-- 注册格式化转换器,因为用到日期转换 -- bean id= conversionService 4)测试应用通过地址 http://localhost:8080/springMVCDemo09/goods/input 测试 springMVCDemo09 应用。
22582.html
goHibernatehtmljavaJSPServletspringSpringMVCWeb
相关文章
- Spring学习笔记(五)——JdbcTemplate和spring中声明式事务
- Spring笔记
- Spring batch教程 之 spring batch简介
- spring boot整合shiro_Spring框架介绍及使用
- Spring Application实例化流程和构造方法参数
- taskscheduler java_Spring TaskScheduler使用实例解析
- Spring Cloud Ablibaba 学习系列文章
- Spring监听器-spring源码详解(五)
- Spring基础(十五):Spring事务环境搭建
- Spring Boot的监控
- Spring Cloud Config 配置中心搭建
- Spring Cloud Data Flow 进行多租户部署和管理示例
- Redis整合Spring结合使用缓存实例
- Spring错误:org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.B详解编程语言
- spring 事务传播行为实例分析详解编程语言
- Spring Boot入门第一天:Hello, Spring Boot!详解编程语言
- Spring+Mybatis+Maven+MySql搭建实例详解编程语言
- spring原理案例-基本项目搭建 03 创建工程运行测试 spring ioc原理实例示例详解编程语言
- Spring在xml配置里配置事务详解编程语言
- spring-web中的WebDataBinder理解详解编程语言
- Spring Boot开启的 2 种方式详解编程语言
- Docker容器上Spring Cloud微服务相互调用时报错:java.net.UnknownHostException:主机名详解编程语言
- Java 必须掌握的 12 种 Spring 常用注解!详解编程语言
- spring Boot(十九):使用Spring Boot Actuator监控应用详解编程语言
- Spring MVC多文件上传(附带实例)
- Spring实现文件上传(示例代码)