在项目中,接收到前端或者其它客户端的调用请求时,需要对传入的参数进行校验。完成这些校验最原始的做法就是编写代码一个个参数进行判断,如判断是否为空、长度是否符合要求、格式是否符合要求等;对于一些简单的输入还好,越复杂的输入,这些校验的代码及逻辑越长,而且在校验失败后组装的返回消息也是因人而异,导致同一项目里面校验失败后返回的消息不统一,最终结果就是用户体验较差。

JSR-303为这类校验提供了一个规范,并在JDK1.6起即提供了Validation包,其中包含了关键的ValidatorFactory及Validator、常用校验注解等内容。Hibernate又在其基础上提供了一个实现。注意这个实现与Hibernate数据库读写中间件无任何关联。

一般项目中都是直接使用Hibernate Validator来进行校验。

1. 简单示例

先来看下单个应用程序如何进行校验。

1.1 实体类

public class TestEntity {@Size(min = 1

Spring Validation及消息国际化.md相关推荐

  1. Spring Validation最佳实践及其实现原理,参数校验没那么简单!

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:六点半起床 juejin.im/post/685654110 ...

  2. Spring MVC-08循序渐进之国际化(基于Session-SessionLocaleResolver)

    概述 工程结构 测试 源码 概述 在Spring MVC中选择语言区域,可以使用语言解析器Bean,它包括几个实现,如下 AcceptHeaderLocaleResolver SessionLocal ...

  3. Spring Validation 最佳实践及其实现原理,参数校验没那么简单!

    之前也写过一篇关于Spring Validation使用的文章,不过自我感觉还是浮于表面,本次打算彻底搞懂Spring Validation.本文会详细介绍Spring Validation各种场景下 ...

  4. Spring Validation 校验

    一.概述 在 Web 应用中,客户端提交数据之前都会进行数据的校验,比如用户注册时填写的邮箱地址是否符合规范.用户名长度的限制等等,不过这并不意味着服务端的代码可以免去数据验证的工作,用户也可能使用 ...

  5. jax-rs jax-ws_JAX-RS Bean验证错误消息国际化

    jax-rs jax-ws Bean验证简介 JavaBeans验证(Bean验证)是Java EE 6平台的一部分提供的新验证模型. 约束通过以JavaBeans组件(例如托管Bean)的字段,方法 ...

  6. JAX-RS Bean验证错误消息国际化

    Bean验证简介 JavaBeans验证(Bean验证)是一种新的验证模型,可作为Java EE 6平台的一部分使用. 约束条件支持Bean验证模型,该约束以注释的形式出现在JavaBeans组件(例 ...

  7. 使用 Spring Validation 优雅地进行参数校验

    引言 不知道大家平时的业务开发过程中 controller 层的参数校验都是怎么写的?是否也存在下面这样的直接判断? public String add(UserVO userVO) {if(user ...

  8. Spring Validation校验

    本文来说下现在使用的比较多的Spring Validation校验框架. 文章目录 概述 校验注解 JSR-303包含的注解 Hibernate Validator扩展的注解 简单使用 引入依赖 re ...

  9. Spring Validation实现原理,参数校验没那么简单

    前言 本文会详细介绍Spring Validation各种场景下的最佳实践及其实现原理,死磕到底! 项目源码:spring-validation 简单使用 Java API规范(JSR303)定义了B ...

最新文章

  1. addEventListener()与removeEventListener()
  2. 开启 Truffle Ganache  MetaMask交互
  3. centos 桥接配置 设置网络代理 lnmp搭建
  4. 程序员的进化(目前还看不懂)
  5. 单例模式——Java
  6. XidianOJ 1099 A simple problem
  7. 2012年12月21日所谓世界末日时做的第一个五年规划——成为领域内的专家
  8. 使用QRCode生成二维码
  9. jdk1.7 1.8新特性
  10. CentOS 6.3下部署LVS(NAT)+keepalived实现高性能高可用负载均衡
  11. Navicat Premium 15 for Mac(数据库管理工具)支持Big Sur
  12. 数据科学导论学习小结——其二
  13. 2019 10月 月末总结
  14. 个人简历模板,非常漂亮,docx格式,用word可自行修改
  15. 会议OA项目---我的审批(审批会议签字)
  16. 点击pv转化率_互联网中一些常用指标(PV、UV、蹦失率、转换率、退出率)
  17. 分享史上Java最牛逼,最简短的代码
  18. mysql语句distinct_MySQL DISTINCT语句
  19. soj 3172 Fisherman (01背包的装满)
  20. 利用echarts实现心形图片排列效果

热门文章

  1. 花170美元,我了解了消费级间谍软件的世界
  2. C++ 中字符串查找、字符串截取、字符串替换、字符串合并
  3. 马科夫过程(MP) -> 马尔科夫奖励过程(MRP) -> 马尔科夫决策过程(MDP)
  4. SAP Web Service 日志监控
  5. Rsync远程同步+inotify监控实时同步概述,部署
  6. spring常见话题
  7. ts453bmini 内存_为华硕天选游戏本而生:8GB DDR4-3200单条跌至194,补齐内存短板
  8. Android 动态权限申请过程
  9. 学生信息管理系统—知识篇
  10. 126邮箱登录---iframe