1. 搭建web工程

2. 导入jar包

spring-beans.jar、spring-context.jar、spring-core.jar、spring-expression.jar、spring-aop.jar、spring-web.jar、spring-webmvc.jar、


hibernate-validator-4.3.0.Final.jar、jboss-logging-3.1.0.CR2.jar、validation-api-1.0.0.GA.jar

添加依赖包: commons-logging.jar、aopalliance.jar

3.在spring-mvc.xml中配置校验器

<!-- 校验器 -->
<bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">

<!--Hibernate校验器-->
<property name="providerClass" value="org.hibernate.validator.HibernateValidator"></property>

<!-- 指定错误信息配置文件:默认情况读取类路径classpath下的 ValidationMessages.properties-->
<property name="validationMessageSource" ref="messageSource"></property>

</bean>

<!--读取错误信息配置文件 -->
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">

<!-- 文件路径 -->
<property name="basenames">
<value>classpath:CustomerValidationMessages</value>

注意:在类路径下自定义的配置文件
</property>

<!-- 指定文件编码格式 -->
<property name="fileEncodings" value="utf-8"></property>

<!-- 指定文件内容缓存时间,秒为单位 -->
<property name="cacheSeconds" value="60"></property>
</bean>

4. 在spring-mvc.xml文件中,将校验器注入到适配器中

<!-- 处理器适配器、处理器映射器 -->
<mvc:annotation-driven validator="validator"></mvc:annotation-driven>

5. 添加校验规则
public class User {
//用户名不能为空
@NotEmpty(message="{user.username}")
public String username;

//密码长度必须在6-12之间
@Length(min=6,max=12,message="{user.password}")
public String password;

//必须符合正则表达式规则
@Email(regexp="^[_a-z0-9]+@([_a-z0-9]+\\.)+[a-z0-9]{2,3}$")
private String email;
}

8. 在spring-mvc.xml文件中,配置错误信息文件CustomerValidationMessages.properties

user.username = 用户名不能为空
user.password = 密码长度必须在6-12之间
user.email = 邮件格式不正确

9. 捕获错误信息
@Controller
public class UserController {

@RequestMapping("/insertUser")
public String insertUser(Model model,@Validated User user,BindingResult bindingResult,Integer uid)
{
if(bindingResult.hasErrors())
{
//获取所有的错误信息
List<ObjectError> errorList = bindingResult.getAllErrors();
for (ObjectError error : errorList) {
System.out.println(error.getDefaultMessage());
}

/*
* 数据回显
*/
//1.POJO类型会默认保存在request作用域中
//model.addAttribute("user", user);

//2.简单数据类型Integer、String、Double需手动保存
model.addAttribute("uid", uid);

//保存错误信息
model.addAttribute("errorMsg", errorList);
return "index";
}
else
{
return "main";
}
}

}

10.显示错误信息

11.测试
http://localhost:8088/springMvc_05_validation/index.jsp

转载于:https://www.cnblogs.com/ccw95/p/6165324.html

Spring MVC——数据检验步骤相关推荐

  1. 基于佟刚老师视频教程的Spring MVC数据类型转换学习总结

    基于Spring MVC数据类型转换的学习笔记总结 问题 页面中数据格式为字符串格式,后台pojo中对应的类型可能为另外一种对象. 如: 在前台页面输入一个固定格式的时间字符串,在后台接收为一个jav ...

  2. Spring MVC数据验证简介

    用户的输入一般是随意的,为了保证数据的合法性,数据验证是所有 Web 应用必须处理的问题. 在 Spring MVC 框架中有以下两种方法可以验证输入数据: 利用 Spring 自带的验证框架. 利用 ...

  3. Spring MVC数据验证

    文章目录 客户端验证 服务器端验证 自定义 Spring 验证器 Validator接口 ValidationUtils 类 Spring MVC验证器应用实例 JSR 303 验证 Hibernat ...

  4. Spring MVC 数据校验

    数据校验是每个项目中必不可少的模块,Spring MVC 提供了两种数据校验的组件: 基于 Validator 接口进行校验 使用 Annotation JSR-303 标准校验 使用基于 Valid ...

  5. Spring MVC 数据验证——validate注解方式

    1.说明 学习注解方式之前,应该先学习一下编码方式的spring注入.这样便于理解验证框架的工作原理.在出错的时候,也能更好的解决这个问题.所以本次博客教程也是基于编码方式.仅仅是在原来的基础加上注解 ...

  6. Spring Mvc 数据回显、异常处理、文件上传、json交互、ResTful、拦截器的使用(高级三)

    1,数据回显 SpringMvc包含三种数据回显机制 第一种:对于简单数据类型,如:Integer.String.Float等使用Model将传入的参数再放到request域实现显示. (回顾jsp四 ...

  7. Spring MVC 数据回显

    springmvc 的数据回显 原创 2015年08月02日 11:39:00 标签: springmvc 1        数据回显 1.1    什么数据回显 提交后,如果出现错误,将刚才提交的数 ...

  8. Spring MVC(4):数据校验

    Spring MVC数据校验 一般来说,准许开发中的 DRY 原则,对于Java程序中的数据校验逻辑和相应的域模型会进行绑定,将代码逻辑集中管理: Spring 在使用DataBinder 对数据进行 ...

  9. Spring MVC【入门】就这一篇

    MVC 设计概述 在早期 Java Web 的开发中,统一把显示层.控制层.数据层的操作全部交给 JSP 或者 JavaBean 来进行处理,我们称之为 Model1: 出现的弊端: JSP 和 Ja ...

最新文章

  1. 项目管理三大认证体系,该选择谁?
  2. 虚拟现实大会ChinaVR2015报告之-数据可视化的挑战与机遇
  3. linux防火墙 限制端口,Linux开启防火墙并限制开放端口
  4. android安装python opencv_MacLinux环境在Android Studio中安装OpenCV
  5. QT的QAssociativeIterable类的使用
  6. 通过手动抛自定义异常实现spring事务回滚
  7. python通过什么对象连接数据库_干货!python与MySQL数据库的交互实战
  8. python白鹅类型_fluent python 11.10节 鹅的行为有可能像鸭子
  9. Python学习笔记-数字类型
  10. 统计学附录,F分布和t分布表
  11. 3月28日服务器维护,4月28日服务器例行维护公告
  12. 【yum】yum 源的配置与使用
  13. 怎么用spss做冗余分析_SPSS进行典型相关分析结果总结
  14. 单片机c语言串转并的IO实验,74LS164 串入并出实验
  15. 苹果html 闪退,iPhone6 App闪退的解决办法 掌握这4点苹果App不再闪退
  16. python中print打印输出
  17. java简易计算器报告_JAVA实训报告简易计算器.doc
  18. python + 数学公式 + 图像 表白 LOVE YOU❤
  19. R语言实现拟合神经网络; 神经网络包
  20. 9 9简单的数独游戏python_如何使用tkinter gui python创建一个9*9的数独生成器?

热门文章

  1. 第一章数据库设计规范
  2. JVM内存模型、逃逸分析以及发生GC的时机
  3. Java高并发入门-线程初步
  4. 突变检测软件 测试数据库,测序数据比对和变异检测
  5. 计算机网络引言,[计算机网络]Ch.1引言
  6. MongoDB中的GridFs是什么
  7. Transport(传输) 详解
  8. Dubbo之Filter链原理
  9. 关于负载均衡的几个问题
  10. 数据结构-王道-线性表