SpringMVC的数据校验
Springmvc-Validate(数据校验)
数据校验概述
1、项目中,通常使用较多是前端的校验,比如页面中js校验。对于安全要求较高点建议在服务端进行校验。
2服务端校验:
-控制层controller:校验页面请求的参数的合法性。在服务端控制层controller校验,不区分客户端类型(浏览器、手机客户端、远程调用)
-业务层service(使用较多):主要校验关键业务参数,仅限于service接口中使用的参数。
-持久层dao:一般是不校验的。
3、springmvc使用hibernate的校验框架validation
-校验思路:
-页面提交请求的参数,请求到controller方法中,使用validation进行校验。
-如果校验出错,将错误信息展示到页面
4、数据校验步骤
-springmvc数据校验步骤
1、导入校验jar文件
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>2.0.1.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.1.0.Final</version>
</dependency>
2、配置校验器
<!-- 配置数据校验的校验器bean
-->
<bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
<property name="providerClass" value="org.hibernate.validator.HibernateValidator"></property>
<property name="validationMessageSource" ref="messageResource"></property>
</bean>
<!-- 校验信息提供的资源文件bean -->
<bean id="messageResource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basenames">
<list>
<value>classpath:validationMessageResource</value>
</list>
</property>
<property name="fileEncodings" value="utf-8"></property>
</bean>
3、校验器注入到处理器适配器中
这段配置validator属性意思是:在调用controller方法之后,马上 让数据校验bean开始工作,对数据进行校验
<mvc:annotation-driven validator="validator"></mvc:annotation-driven>
4、添加校验规则
在domain包里的类添加校验规则
5、错误信息文件
把配置文件放到类路径中
6、捕获错误信息
//如果controller方法绑定的参数需要框架帮你校验,那么你要说一声--在参数前面加个注解@Validated
@RequestMapping("/addProduct.do")
public String addProduct(@Validated Product product ,BindingResult bindingResult,Model model) {
//当进入到本方法时,参数校验应该已经搞定了,我们可以获取校验的结果了,可以通过绑定参数bindingResult拿到
if(bindingResult.hasErrors()) {
List<FieldError> list=bindingResult.getFieldErrors();
for(FieldError fe:list) {
System.out.println(fe.getDefaultMessage());
}
}
7、显示错误信息
在后台controller
//校验完了想返回页面查询校验出错信息怎么办?
model.addAttribute("fieldErrors",bindingResult.getFieldErrors());
model.addAttribute("product", product);
在jsp页面
<!-- 页面怎样展示出错数据呢?c标签 -->
<c:if test="${fieldErrors!=null}">
<c:forEach items="${fieldErrors}" var="f">
${f.defaultMessage}
</c:forEach>
</c:if>
<form action="${pageContext.request.contextPath}/addProduct.do" method="post">
商品名称:<input type="text" name="name" value="${product.name}"/><br>
商品单价:<input type="text" name="price" value="${product.price}"/><br>
生产日期:<input type="text" name="birth" value="${product.birth}"/><br>
商品描述:<input type="text" name="desc" value="${product.desc}"/><br>
<input type="submit" value="添加"/>
</form>
SpringMVC的数据校验相关推荐
- springmvc(四) springmvc的数据校验的实现
so easy~ --WH 一.什么是数据校验? 这个比较好理解,就是用来验证客户输入的数据是否合法,比如客户登录时,用户名不能为空,或者不能超出指定长度等要求,这就叫做数据校验. 数据校验分为客户端 ...
- SpringMVC后台数据校验
第①步:引入依赖 <!--数据校验--><dependency><groupId>org.hibernate</groupId><artifact ...
- SpringMVC的数据转换、格式化和数据校验
目录 一.数据转换 1.ConversionService 2.自定义类型转换器 (1)案例一 (2)案例二 二.处理静态资源 三.关于 mvc:annotation-driven 四.@InitBi ...
- SpringMVC数据校验、文件上传
SpringMVC数据校验.文件上传 首先在此鸣谢所有本篇博客涉及技术给予我指导的导师,朋友! 目录: 1.文件上传流程: 2.数据校验: 3.本试验遇到的报错问题及解决办法: 4.Java文件源代码 ...
- java学习笔记——springmvc 之 数据自定义转换器 数据格式化 JSR303数据校验返回与接收JSON(@RequestBody 和 @ResponseBody)
九.数据绑定流程分析 1.提出问题 日期字符串格式的表单参数,提交后转换为Date类型 <!-- 解决问题: 1.数据类型转换 2.数据格式 3.数据校验 --> BirthDay ...
- springMVC数据校验
介绍 一般情况下,用户的输入是随意的,为了保证数据的合法性,数据验证是所有 Web 应用必须处理的问题. Spring MVC 有以下两种方法可以验证输入: 利用 Spring 自带的验证框架 利用 ...
- SpringMVC_数据校验
一:数据校验的分类 数据校验分为前台校验和后台校验,前台校验主要是利用JavaScript来完成的,后台校验主要利用Java代码来完成的,可以使用SpringMvc和Hibernate validat ...
- SpringMVC底层数据传输校验的方案(修改版)
团队的项目正常运行了很久,但近期偶尔会出现BUG.目前观察到的有两种场景:一是大批量提交业务请求,二是生成批量导出文件.出错后,再执行一次就又正常了. 经过跟踪日志,发现是在Server之间进行jso ...
- Java数据校验(Bean Validation / JSR303)
文档: http://beanvalidation.org/1.1/spec/ API : http://docs.jboss.org/hibernate/beanvalidation/spec/1. ...
最新文章
- [Poi2010]Antisymmetry
- vue中进行判断不同字段的判断,主要是区分于微信小程序和网页版之间写法
- 用CSS伪元素制作箭头
- istio安装命令整理
- HttpHandler浅析
- SVN 代码迁出,导出,同步至生产环境脚本
- 8-1-Filter过滤器
- 概念模型——分析模式学习笔记
- HDU1176:免费馅饼(dp,数字三角形的应用)
- 赵伟功老师 管理系统提升专家
- 能耗分项计量监测系统在某大型公建中的应用
- CorelDRAW 2022(CDR22)软件最新版本正式发布 新增功能详解
- 中华传统吉祥图案集锦
- 分子动力学理论篇(1)——牛顿力学、哈密顿动力学和相空间
- 外报分析中国房价上涨三原因 指开发商行为怪异
- 计算机仿真技术生物,基于计算机仿真技术的人体生理特性和病理机制研究
- Android闹钟APP
- 智博 计算机试题库,智博教育计算机新大纲冲刺资料(一)-简答题.pdf
- 绿坝遭遇“剽窃门,美国加州一软件公司指控其剽窃他们的技术,并准备诉诸法律
- 一群爱做“傻事”的技术宅 1
热门文章
- type在python的意思_python中type()是什么意思
- orangePi3 lts
- zookeeper C API实例
- Overlapped分析
- 【ORACLE】dmp格式导入导出,表没有数据的情况下,该表导入会缺失
- wpsup计算机内存不足处理方法,wps表格太大了占用内存大怎么办_wps表格占用大量内存的处理方法...
- ROS 北通游戏手柄灵敏度 频率过高, xbox360/ ps2/3模式切换问题
- JSP+Servlet教师工资管理系统(附论文)
- 以我所能,为你而加 —— 新一代音视频融合通信平台全接触
- GNN-CS224W: 4 Link Analysis: PageRank