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. 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 ...

  2. MySQL Index详解

    FROM:http://blog.csdn.net/tianmo2010/article/details/7930482 ①MySQL Index 一.SHOW INDEX会返回以下字段 1.Tabl ...

  3. Java操作符

    几乎所有运算符都只能操作"主类型"(Primitives).例外是"="."= ="和"! =",它们能操作所有对象.除 ...

  4. Windows 8.1 应用开发 – 触控操作

    与WPF相同Windows 8.1应用中也具有高级触控操作(Manipulation),其中包含了三种常见的触屏手势:平移.缩放.旋转,通过以下四种事件可为控件实现各种触控操作:Manipulatio ...

  5. Linux execve函数簇用法

    exec函数簇实现的功能都是用一个新程序替换原来的程序,替换的内容包括堆栈段,代码段,进程控制器PCD,但是原进程的PID保持不变 int execl(const char *path, const ...

  6. Oracle 常用函数

    主要是对项目中用过的 oracle 函数进行总结,并做出目录,方便后续项目是快速查找,提高效率. 01.Round (数值的四舍五入) 描述:传回一个数值,该数值是按照指定的小数位元数进行四舍五入运算 ...

  7. 关于开发中 hosts 文件的修改

    这篇文章只是给自己做个笔记吧. 最近的工作经常要改 hosts 文件(C:\Windows\System32\drivers\etc\hosts),并且改完后不立即生效.小胡子哥 提到: 因为服务器设 ...

  8. JSON拾遗

    最近开始翻<JavaScript高级程序设计>,其实很多大师级人物都推荐这本书为JavaScript入门级读物.因为第20章 JSON篇幅最小,而且以前也写过一篇JSON的总结JSON简介 ...

  9. 利用uploadify+asp.net 实现大文件批量上传。

    前言 现在网上文件上传组件随便一搜都是一大堆,不过看大家一般都在用uploadify这个来上传文件.由于项目需要,我在来试了一下.因为第一次使用,也遇到了很多问题,特此记录! ------------ ...

  10. HTTP 错误 500.24 - Internal Server Error的解决方法

    错误提示: 最可能的原因:   system.web/identity@impersonate 设置为 true. 解决办法: 现在经典模式 连微软都几乎放弃了 原设想是为iis不断升级 提供的一种兼 ...