Spring MVC验证器:Validator接口和ValidationUtils类
2023-09-14 09:14:13 时间
本节主要介绍创建自定义 Spring 验证器时需要实现的 Validator 接口和工具类 ValidationUtils。
Validator接口
创建自定义 Spring 验证器需要实现 org.springframework.validation.Validator 接口,该接口有两个接口方法:
boolean supports(Class<?> klass)
void validate(Object object,Errors errors)
当 supports 方法返回 true 时,验证器可以处理指定的 Class。validate 方法的功能是验证目标对象 object,并将验证错误消息存入 Errors 对象。
往 Errors 对象存入错误消息的方法是 reject 或 rejectValue,这两个方法的部分重载方法如下:
void reject(String errorCode)
void reject(String errorCode,String defaultMessage)
void rejectValue(String filed,String errorCode)
void rejectValue(String filed,String errorCode,String defaultMessage)
在一般情况下只需要给 reject 或 rejectValue 方法一个错误代码,Spring MVC 框架就会在消息属性文件中查找错误代码,获取相应错误消息。具体示例如下:
if(goods.getGprice() > 100 || goods.getGprice() < 0){
errors.rejectValue("gprice","gprice.invalid"); // gprice.invalid为错误代码
}
ValidationUtils 类
org.springframework.validation.ValidationUtils 是一个工具类,该类中有几个方法可以帮助用户判定值是否为空。
例如:
if(goods.getGname()==null || goods.getGname().isEmpty()) {
errors.rejectValue("gname","goods.gname.required")
}
再如:
if(goods.getGname() == null || goods.getGname().trim().isEmpty()) {
errors.rejectValue("gname","goods.gname.required")
}
上述 if 语句可以编写成:
//gname为goods对象的属性
ValidationUtils.rejectIfEmptyOrWhitespace(errors,"gname","goods.gname.required");
由于篇幅有限,大家可参考《Spring MVC验证器应用实例》教程巩固学习。
相关文章
- spring mvc实现接口参数统一更改
- Spring钩子方法和钩子接口的使用详解
- Spring系列.Resource接口
- Spring系列.ApplicationContext接口
- 【Spring Cloud】Spring Cloud之Zipkin server搭建以及RabbitMQ收集,分布式服务跟踪(3)
- 使用JDBCTemplate实现与Spring结合,方法公用 ——接口(BaseDao)
- Spring的AOP
- Spring异常解决 java.lang.NullPointerException,配置spring管理hibernate时出错
- maven 创建spring boot 需要的配置[一]
- spring boot:用swagger3生成接口文档,支持全局通用参数(swagger 3.0.0 / spring boot 2.3.2)
- spring 学习2-Spring Configuration in detail
- spring boot 指定启动端口
- spring boot编写并运行HelloWorld服务接口
- Spring Cloud 微服务的那点事
- set Spring log level to debug so that we can learn more from log
- Spring boot应用如何支持https
- Atitit 常用微服务实现 目录 1. 健康检测 max_fails与fail_timeout参 数1 1.1. spring cloud dubbo实现2 1.2. 、nginx多个tomc
- Atitit spring 3.0 3.1 3.2 4.0 4.3 5.0 新特性
- 【Spring笔记11】Spring常见的几个可扩展接口(InitializingBean、DisposableBean、ApplicationContextAware等)
- 毕业设计 Spring Boot的勤工助学管理系统(含源码+论文)
- Spring 依赖注入优化
- 005-spring-data-elasticsearch 3.0.0.0使用【三】-spring-data之Spring数据扩展
- ApplicationContext在非Service类中调用Spring的Serivce类
- Spring Boot从入门到实战:集成AOPLog来记录接口访问日志
- Spring Cloud Alibaba-Spring Cloud Gateway-API 网关-使用路由网关统一访问接口
- Spring Cloud Zuul网关的介绍及使用
- Spring MVC使用HandlerExceptionResolver接口异常处理
- Spring事务管理接口:PlatformTransactionManager、TransactionDefinition和TransactionStatus
- 【java】Spring Boot --spring boot项目整合xxl-job