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数据效验的更多相关文章

  1. SpringMVC的数据效验

    Spring MVC本身没有数据校验的功能,它使用Hibernate的校验框架来完成. 1.导入pom节点 <!-- https://mvnrepository.com/artifact/org ...

  2. springmvc的数据校验

       springmvc的数据校验 在Web应用程序中,为了防止客户端传来的数据引发程序异常,常常需要对数据进行验证,输入验证分为客户端验证与服务器端验证. 客户端验证主要通过javaScript脚本 ...

  3. SpringMVC保存数据到mysql乱码问题

    SpringMVC保存数据到mysql乱码问题 乱码问题常见配置 一.web.xml配置过滤器 <filter> <filter-name>encoding-filter< ...

  4. Struts数据效验

    表单数据的验证: 前台验证:主要是通过JS验证, 表达数据是否合法! 后台验证:通过后台java代码进行验证! Struts也提供了数据效验的方式! Struts数据效验, 通过拦截器完成: < ...

  5. springmvc(五) 数据回显与自定义异常处理器

    这章讲解一下springmvc的数据回显和自定义异常处理器的使用,两个都很简单 --WH 一.数据回显技术 Springmvc默认支持对pojo类型的数据回显,默认不支持简单类型的数据回显 1.1.什 ...

  6. [SpringBoot] - 配置文件的多种形式及JSR303数据校验

    Springboot配置文件: application.yml   application.properties(自带) yml的格式写起来稍微舒服一点 在application.properties ...

  7. springMVC返回数据的四种方式

    转自:https://blog.csdn.net/itcats_cn/article/details/82119673 springMVC返回数据的四种方式:第一种,通过request.setAttr ...

  8. YAML语法使用,JSR303数据校验

    YAML YAML是 "YAML Ain't a Markup Language" (YAML不是一种置标语言)的递归缩写 # yaml配置 server: prot: YAML语 ...

  9. Springboot:JSR303数据校验(五)

    @Validated //开启JSR303数据校验注解 校验规则如下: [一]空检查 @Null 验证对象是否为null @NotNull 验证对象是否不为null, 无法查检长度为0的字符串 @No ...

  10. 【SpringMVC】SpringMVC 响应数据

    SpringMVC 响应数据 文章源码 返回值分类 返回值是字符串 Controller 方法返回字符串可以指定逻辑视图的名称,通过视图解析器解析为物理视图的地址. @Controller @Requ ...

随机推荐

  1. 解析百度搜索结果链接的url,获取真正的url

    通常,在百度输入关键词搜索出现的列表页,点击目标链接,然而跳转的时候却是百度地址,经过百度解析,才真的跳到目标页面. 在SEO中,经常需要看下自己的网站排名,又不想手动每天手动去点,可用以下方法去得到 ...

  2. BZOJ 1010 【HNOI2008】 玩具装箱toy

    Description P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京.他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再放到一种特殊的一维容器中.P教授有编号为1... ...

  3. 安装Docker Toolbox后出现的问题

    Installing Docker Toolbox on Windows with Hyper-V Installed Installing Docker on Windows is a fairly ...

  4. (转)无法打开C盘,提示"本次操作由于这台计算机的限制被取消,请与你的管理员联系”

    今天下了一个网吧用的工具一不小心把系统给限制了好多双击打开C的时候就出现本次操作由于这台计算机的限制被取消,请与你的管理员联系下载一个精锐网吧辅助工具解除了一下现在但是还是不能双击 于是就在网上找帮啊 ...

  5. Linux Linux程序练习十六(进程间的通信信号版)

    /* * 题目: * 编写程序,要去实现如下功能: 父进程创建子进程1和子进程2.子进程1向子进程2发送可靠信号,并传送额外数据为子进程1的pid*2; 子进程2接受可靠信号的值,并发送给父进程,父进 ...

  6. 64位centos 下编译 hadoop 2.6.0 源码

    64位os下为啥要编译hadoop就不解释了,百度一下就能知道原因,下面是步骤: 前提:编译源码所在的机器,必须能上网,否则建议不要尝试了 一. 下载必要的组件 a) 下载hadoop源码 (当前最新 ...

  7. dev gridcontrol纵向合并单元格设置

    1.要设置gridcontrol中指定列(columns中选中指定列)的AllowMerge属性为true; 2.要设置gridview中AllowCellMerge的属性为true; 3.如果只合并 ...

  8. java中的static详解

    如果一个类成员被声明为static,它就能够在类的任何对象创建之前被访问,而不必引用任何对象.static 成员的最常见的例子是main( ) .因为在程序开始执行时必须调用main() ,所以它被声 ...

  9. CSS与JQuery的相关问题

    文字隐藏:p div里面的文字过长时隐藏文字: overflow:hidden; text-overflow:ellipsis; white-space:nowrap; --------------- ...

  10. Android回调

    当A页面跳往B页面做一些操作后,再从B页面回到A页面时,A页面想要回去一些B页面操作的数据时,我们一般会使用回调. 1 public class MainActivity extends Activi ...