1. JSR 303 javaBean数据合法性校验提供的标准框架,它已经包含在JavaEE 6.0中。
  2. JSR 303 通过在Bean属性上标注类似于@NotNull@Max等标准的注解指定校验规则,
  3. 并通过标准的验证接口对Bean进行验证:
  4. ---------------------------------------------------------------------------
  5. 注解 说明
  6. ---------------------------------------------------------------------------
  7. @Null 被注释的元素必须为null
  8. @NotNull 被注释的元素不能为null
  9. @AssertTrue 被注释的元素必须为true
  10. @AssertFalse 被注释的元素必须为false
  11. @Min(value) 被注释的元素必须是一个数字,其值必须>=指定的最小值
  12. @Max(value) 被注释的元素必须是一个数字,其值必须<=指定的最大值
  13. @DecimalMin(value) 被注释的元素必须是一个数字,其值必须>=指定的最小值
  14. @DecimalMax(value) 被注释的元素必须是一个数字,其值必须<=指定的最大值
  15. @Size(max, min) 被注释的元素的大小必须在指定的范围内
  16. @Digits(integer, fraction) 被注释的元素必须是一个数字,其值必须在可接受的范围内
  17. @Past 被注释的元素必须是一个过去的日期
  18. @Future 被注释的元素必须是一个将来的日期
  19. @Pattern(value) 被注释的元素必须符合指定的正则表达式
  20.  
  21. ---------------------------------------------------------------------------
  22. Hibernate Validation JSR 303 的一个参考实现,除支持所有的标准的校验注解之外,
  23. 它还支持以下的扩展注解:
  24.  
  25. 注解 说明
  26. @Email 被注释的元素必须是一个电子邮箱地址
  27. @Length 被注释的字符串的大小必须在指定的范围内
  28. @NotEmpty 被注释的字符串必须非空
  29. @Range 被注释的元素必须在合适的范围内
  30. ---------------------------------------------------------------------------
  31. Spring 4.0 拥有自己独立的数据校验框架,同时支持JSR 303 标准的校验框架。
  32. Spring 在进行数据绑定时,可同时调用校验框架完成数据校验工作。
  33. SpringMVC中, 可直接通过注解驱动的方式进行数据校验。
  34. Spring LocalValidatorFactoryBean 既实现了SpringValidator接口,
  35. 也实现了 JSR 303 Validator接口。只要在Spring容器中定义一个
  36. LocalValidatorFactoryBean,即可将其注入到需要数据校验的Bean中。
  37. Spring本身并没有提供 JSR303 的实现,所以必须将 JSR303 的实现者的jar
  38. 放到类路径下。
  39.  
  40. 通过在处理方法的入参上标注 @Valid注解 即可让SpringMVC 在完成数据绑定之后执行数据校验的工作。
  41. 在已经标注了 JSR303 注解的表单/命令对象前标注一个 @Valid SpringMVC 框架在将请求参数绑定到
  42. 该入参对象后,就会调用校验框架根据注解生命的校验规则实施校验。
  43.  
  44. SpringMVC 是用过对处理方法签名的规约来保存校验结果的:
  45. 前一个表单/命令对象的校验结果保存到随后的入参中,这个保存的校验结果的入参必须是 BindingResult
  46. Errors 类型,这两个类都位于 org.springframework.validation 包中。
  47.  
  48. 但是需要注意的一点:
  49. 需要校验的bean对象和其绑定结果的BindingResult对象必须成对出现,而且它们两个必须紧挨着,之间不能有
  50. 其他的入参。
  51.  
  52. BindingResutl 其实是 Errors的子类, Errors 接口提供了获取错误信息的方法,如 getErrorCount()
  53. getFieldErrors(String field)。
  54. BindingResult 扩展了 Errors 接口。

SpringMVC中的 JSR 303 数据校验框架说明的更多相关文章

  1. SpringMVC中使用Json传数据

    在web项目中使用Json进行数据的传输是非常常见且有用的,在这里介绍下在SpringMVC中使用Json传数据的一种方法,在我的使用中,主要包括下面四个部分(我个人喜好使用maven这类型工具进行项 ...

  2. SpringMVC——类型转换和格式化、数据校验、客户端显示错误消息

    在介绍类型转换和格式化之前,我首先来介绍 <mvc:annotation-driven />. 需要导入的 schema: xmlns:mvc="http://www.sprin ...

  3. SSM-SpringMVC-31:SpringMVC中利用hibernate-validator做后台校验

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 校验有三种:前台页面校验(例如js和h5),后台校验,数据库校验 但是一般能不用数据库校验就不用数据库校验,因 ...

  4. SpringMVC的拦截器和数据校验

    SpringMVC拦截器 什么是拦截器:Spring MVC中的拦截器(Interceptor)类似于Servlet中的过滤器(Filter),它主要用于拦截用户请求并作相应的处理.例如通过拦截器可以 ...

  5. springMVC中接收请求参数&&数据转发

    ### 1. 接收请求参数 #### 1.1. [不推荐] 通过HttpServletRequest获取请求参数 假设存在: <form action="handle_login.do ...

  6. 自己写的基于java Annotation(注解)的数据校验框架

    JavaEE6中提供了基于java Annotation(注解)的Bean校验框架,Hibernate也有类似的基于Annotation的数据校验功能,我在工作中,产品也经常需要使 用数据校验,为了方 ...

  7. 【Spring】SpringMVC中浅析Date类型数据的传递

    在控制器中加入如下代码: @InitBinder public void initBinder(ServletRequestDataBinder bin){ SimpleDateFormat sdf ...

  8. struts2(三)---struts2中的服务端数据验证框架validate

    struts2为我们提供了一个很好的数据验证框架–validate,该框架可以很方便的实现服务端的数据验证. ActionSupport类提供了一个validate()方法,当我们需要在某一个acti ...

  9. 关于SpringMVC中如何把查询数据全转成String类型

    之前,本想与客户商量做几张固定的报表予使用,结果发现客户每个月都需要各种各样的报表,所以我们做了个窗口用于直接执行SQL语句:数据量一开始并不是很大查询出来的数据较少(约1-6W左右),所以刚开始几个 ...

随机推荐

  1. How to use, monitor, and disable transparent hugepages in Red Hat Enterprise Linux 6

    Resolution Note: Transparent Huge Pages are not available on the 32-bit version of RHEL 6. Transpare ...

  2. Xcode全局替换内容,一键Replace

    有时需要在整个项目里,全局修改某一段话或文字,可以这样快速实现: 1.打开查找功能 2.输入你要替换的内容 比如,我这边想全局修改作者名称 3.点击Find,会出现一个框,会有replace出来,就和 ...

  3. Tensorflow默认占满全部GPU的全部资源

    一台服务器上装了多块GPU,默认情况下启动一个深度学习训练任务时,这个任务会占满每一块GPU的几乎全部存储空间.这就导致一个服务器基本上只能执行一个任务,而实际上任务可能并不需要如此多的资源,这相当于 ...

  4. 【RS】Local Low-Rank Matrix Approximation - LLORMA :局部低秩矩阵近似

    [论文标题]Local Low-Rank Matrix Approximation (icml_2013 ) [论文作者]Joonseok Lee,Seungyeon Kim,Guy Lebanon  ...

  5. Docker(二):Dockerfile使用介绍

    上一篇文章Docker(一):Docker入门教程介绍了 Docker 基本概念,其中镜像.容器和 Dockerfile .我们使用 Dockerfile 定义镜像,依赖镜像来运行容器,因此 Dock ...

  6. mariadb/mysql配置允许远程访问方式

    首先配置允许访问的用户,采用授权的方式给用户权限 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY '123456' WITH GRANT ...

  7. AdapterView的使用与getView函数详解

    作者:徐冉.文章首发在他的个人博客. ) AdapterView&Adapter家族 adapterview就是和数据有关的控件,如listview,gridview,spinnerview等 ...

  8. jQuery插件EasyDrag轻松实现JS拖动的效果

    jquery.easydrag下载地址:http://ishare.iask.sina.com.cn/f/34289681.html 实现效果图:分布实现一.页面Html标签元素定义 <!doc ...

  9. Nginx https证书部署

    1 获取证书 Nginx文件夹内获得SSL证书文件 1_www.domain.com_bundle.crt 和私钥文件 2_www.domain.com.key,1_www.domain.com_bu ...

  10. response.encodeURL的用法

    Java Servlet API 中引用 Session 机制来追踪客户的状态.Servlet API 中定义了 javax.servlet.http.HttpSession 接口,Servlet 容 ...