springMVC-JSR303数据效验
JSR 303 是java为Bean数据合法性校验提供的标准框架,
它已经包含在javaEE6.0中
JSR 303 通过Bean属性上标注类似于@NotNull.@Max等标准的注解指定校验规则,
并通过过标准的验证接口对bean进行验证
JSR 303有哪些注解,在博客园里有很多文章
Hibernate Validator是JSR 303的一个参考实现,
除了有标准的校验注解外,它还支持以下的扩展注解
(在博客园里有很多文章)
Spring MVC数据校验
* Spring 4.0拥有自己独立的数据校验框架,同时支持JSP303标准的校验框架
* Spring在进行数据绑定时,可同时调用验证框架完成数据校验工作
,在SpringMVC中,可以直接通过注解驱动的方式进行数据校验
* Spring的LocalValidatorFactoryBean既实现了Spring的validator接口,
也实现了JSR303 的validator接口
只要在Spring容器中定义了一个LocalValidatorFactoryBean,即可将其注入
到需要数据校验的Bean中,
Spring本身并没有提供JSR303的实现,所以必须将JSR303的时闲着的JAR包
放到类路径下
Spring 配置文件中需要配置LocalValidatorFactoryBean
*<mvc:annotation-driven/>会默认装配好一个LocalValidatorFactoryBean
通过在处理方法的入参上标注@valid,注解既可以让Spring MVC在完成
数据绑定后执行数据校验的工作
* 在已经标注了JSR 303注解的表单/命令对下个前标注一个@valid,Spring
MVC 框架在将请求参数绑定到该入参对象后,就会调用验证框架根据注解声明
的校验规则实施校验
* Spring MVC 是通过对处理方法签名的规约来保存校验结果的;
前一个表单.命令对象的校验结果保存到随后的入参中,这个保存校验结果
的入参必须是BindingResult或者Errors类型,这两个类都位于
org.springfarmework.validation
1使用JSR 303验证标准
2.加入hibernate validator验证框架的jar包
3.在SpringMVC 配置文件中添加<mvc:annotation-driven/>
4.需要在bean类型前加上@valid注解
5.在目标方法bean类型的前面添加@valid 注解
在项目里加入这些jar包,
之后再次测试可能会遇到一个错误
java.lang.NoSuchMethodError: TRACE
但是我遇到的是
java.lang.NoSuchFieldError: TRACE,现在还不知道是那个jar包冲突了
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
由于之前我改了tomcat中的lib下的一些jar包,导致了另外一个正在写的项目不能运行了,我就重新解压了一个tomcat,然后配置进去,
首先我把尚硅谷的源代码的jar包复制到自己的项目下面(已经把之前自己配置的jar包删除了,(先在buildPath里删,后在lib文件夹下删))然后我看了看这个项目的build Path结合控制台的提示,猜想应该把tomcat的lib加入到buildPath
在项目的buildPath里然后点击add library,然后选择Server runtime,然后加入tomcat的就可以了
之后我再运行项目就可以了。
运行结果
出错了
productionDate : 需要是一个过去的事件
name : 不能为空
prod save : Product [name=, description=爱上地方, price=1222222.9, productionDate=Tue Dec 12 00:00:00 CST 2017]
出错了
name : 不能为空
productionDate : 需要是一个过去的事件
prod save : Product [name=, description=爱上地方, price=1222222.9, productionDate=Tue Dec 12 00:00:00 CST 2017]
注意:需要校验的Bean对象和其绑定结果对象或者错误对象承兑出现的,他们之间不允许声明其他
的入参
springMVC-JSR303数据效验的更多相关文章
- SpringMVC的数据效验
Spring MVC本身没有数据校验的功能,它使用Hibernate的校验框架来完成. 1.导入pom节点 <!-- https://mvnrepository.com/artifact/org ...
- springmvc的数据校验
springmvc的数据校验 在Web应用程序中,为了防止客户端传来的数据引发程序异常,常常需要对数据进行验证,输入验证分为客户端验证与服务器端验证. 客户端验证主要通过javaScript脚本 ...
- SpringMVC保存数据到mysql乱码问题
SpringMVC保存数据到mysql乱码问题 乱码问题常见配置 一.web.xml配置过滤器 <filter> <filter-name>encoding-filter< ...
- Struts数据效验
表单数据的验证: 前台验证:主要是通过JS验证, 表达数据是否合法! 后台验证:通过后台java代码进行验证! Struts也提供了数据效验的方式! Struts数据效验, 通过拦截器完成: < ...
- springmvc(五) 数据回显与自定义异常处理器
这章讲解一下springmvc的数据回显和自定义异常处理器的使用,两个都很简单 --WH 一.数据回显技术 Springmvc默认支持对pojo类型的数据回显,默认不支持简单类型的数据回显 1.1.什 ...
- [SpringBoot] - 配置文件的多种形式及JSR303数据校验
Springboot配置文件: application.yml application.properties(自带) yml的格式写起来稍微舒服一点 在application.properties ...
- springMVC返回数据的四种方式
转自:https://blog.csdn.net/itcats_cn/article/details/82119673 springMVC返回数据的四种方式:第一种,通过request.setAttr ...
- YAML语法使用,JSR303数据校验
YAML YAML是 "YAML Ain't a Markup Language" (YAML不是一种置标语言)的递归缩写 # yaml配置 server: prot: YAML语 ...
- Springboot:JSR303数据校验(五)
@Validated //开启JSR303数据校验注解 校验规则如下: [一]空检查 @Null 验证对象是否为null @NotNull 验证对象是否不为null, 无法查检长度为0的字符串 @No ...
- 【SpringMVC】SpringMVC 响应数据
SpringMVC 响应数据 文章源码 返回值分类 返回值是字符串 Controller 方法返回字符串可以指定逻辑视图的名称,通过视图解析器解析为物理视图的地址. @Controller @Requ ...
随机推荐
- 10 Things Every Java Programmer Should Know about String
String in Java is very special class and most frequently used class as well. There are lot many thin ...
- MySQL Index详解
FROM:http://blog.csdn.net/tianmo2010/article/details/7930482 ①MySQL Index 一.SHOW INDEX会返回以下字段 1.Tabl ...
- Java操作符
几乎所有运算符都只能操作"主类型"(Primitives).例外是"="."= ="和"! =",它们能操作所有对象.除 ...
- Windows 8.1 应用开发 – 触控操作
与WPF相同Windows 8.1应用中也具有高级触控操作(Manipulation),其中包含了三种常见的触屏手势:平移.缩放.旋转,通过以下四种事件可为控件实现各种触控操作:Manipulatio ...
- Linux execve函数簇用法
exec函数簇实现的功能都是用一个新程序替换原来的程序,替换的内容包括堆栈段,代码段,进程控制器PCD,但是原进程的PID保持不变 int execl(const char *path, const ...
- Oracle 常用函数
主要是对项目中用过的 oracle 函数进行总结,并做出目录,方便后续项目是快速查找,提高效率. 01.Round (数值的四舍五入) 描述:传回一个数值,该数值是按照指定的小数位元数进行四舍五入运算 ...
- 关于开发中 hosts 文件的修改
这篇文章只是给自己做个笔记吧. 最近的工作经常要改 hosts 文件(C:\Windows\System32\drivers\etc\hosts),并且改完后不立即生效.小胡子哥 提到: 因为服务器设 ...
- JSON拾遗
最近开始翻<JavaScript高级程序设计>,其实很多大师级人物都推荐这本书为JavaScript入门级读物.因为第20章 JSON篇幅最小,而且以前也写过一篇JSON的总结JSON简介 ...
- 利用uploadify+asp.net 实现大文件批量上传。
前言 现在网上文件上传组件随便一搜都是一大堆,不过看大家一般都在用uploadify这个来上传文件.由于项目需要,我在来试了一下.因为第一次使用,也遇到了很多问题,特此记录! ------------ ...
- HTTP 错误 500.24 - Internal Server Error的解决方法
错误提示: 最可能的原因: system.web/identity@impersonate 设置为 true. 解决办法: 现在经典模式 连微软都几乎放弃了 原设想是为iis不断升级 提供的一种兼 ...