java validation 后台参数验证
来源:互联网 发布:反转二叉树 js 编辑:程序博客网 时间:2024/05/26 05:53
java validation 后台参数验证
一、前言
二、几种解决方案
三、使用bean validation 自带的注解验证
四、自定义bean validation 注解验证
一、前言
在后台开发过程中,对参数的校验成为开发环境不可缺少的一个环节。比如参数不能为null,email那么必须符合email的格式,如果手动进行if判断或者写正则表达式判断无意开发效率太慢,在时间、成本、质量的博弈中必然会落后。所以把校验层抽象出来是必然的结果,下面说下几种解决方案。
二、几种解决方案
1、struts2的valid可以通过配置xml,xml中描述规则和返回的信息,这种方式比较麻烦、开发效率低,不推荐
2、validation bean 是基于JSR-303标准开发出来的,使用注解方式实现,及其方便,但是这只是一个接口,没有具体实现.Hibernate Validator是一个hibernate独立的包,可以直接引用,他实现了validation bean同时有做了扩展,比较强大 ,实现图如下:
点此查看中文官方手册
3、oval 是一个可扩展的Java对象数据验证框架,验证的规则可以通过配置文件、Annotation、POJOs 进行设定。可以使用纯 Java 语言、JavaScript 、Groovy 、BeanShell 等进行规则的编写,本次不过多讲解
三、bean validation 框架验证介绍
bean validation 包放在maven上维护,最新包的坐标如下:
<
dependency
>
<
groupId
>javax.validation</
groupId
>
<
artifactId
>validation-api</
artifactId
>
<
version
>1.1.0.Final</
version
>
</
dependency
>
点击这里查看最新的坐标地址
下载之后打开这个包,有个package叫constraints,里面放的就是验证的的注解:
下面开始用代码实践一下:
1、定义一个待验证的bean:Student.java
2、测试类:StudentTest.java
3、运行testValidation()方法,输处如下:
地址应该在6-30字符之间邮箱的格式不合法生日必须在当前时间之前多吃点饭吧名字不能为空
4、总结
- 像@NotNull、@Size等比较简单也易于理解,不多说
- 因为bean validation只提供了接口并未实现,使用时需要加上一个provider的包,例如hibernate-validator
- @Pattern 因为这个是正则,所以能做的事情比较多,比如中文还是数字、邮箱、长度等等都可以做
- @AssertTRue 这个与其他的校验注解有着本质的区别,这个注解适用于多个字段。例子中isHaveFriend方法依赖friendName字段校验
- 验证的api是经过我加工了一下,这样可以批量返回校验的信息
- 有时我们需要的注解可能没有提供,这时候就需要自定义注解,写实现类,下面说一下自定义注解的使用
四、自定义bean validation 注解验证
有时框架自带的没法满足我们的需求,这时就需要自己动手丰衣足食了,恩恩 ,这个不难,下面说下。
这个例子验证字符串是大写还是小写约束标注,代码如下:
1、枚举类型CaseMode
, 来表示大写或小写模式
2、定义一个CheckCase的约束标注
3、约束条件CheckCase
的验证器
4、在Student.java中增加一个属性
5、在StudentTest.java的getBean()方法中增加一行
bean.setSpellName("XIAOGANGFAN");
6、运行testValidation()方法,输处如下:
地址应该在6-30字符之间邮箱的格式不合法生日必须在当前时间之前多吃点饭吧名字的拼音需要小写名字不能为空
7、说明新增的约束生效了,大功告成
代码下载地址:git@github.com:xiaogangfan/vaidation.git
命令: git clone git@github.com:xiaogangfan/vaidation.git
- java validation 后台参数验证
- JAVA参数验证 Validation(一)
- JAVA参数验证 Validation(二)分组校验&自定义校验
- java org.hibernate.validator 后台参数验证
- Struts2中通过validation.xml验证数字,后台报错
- Spring Boot 菜鸟教程 19 后台验证 Hibernate Validation
- 注册时后台验证UserAction-regUser-validation.xml
- java Validation 约束验证(源码)
- java后端验证 bean validation 框架
- validation 验证
- validation验证
- java后台产生验证码后台验证
- java后台正则验证
- 用验证曲线 validation curve 选择超参数
- JAVA后台验证身份证是否合法
- java 手机号后台验证是否合法
- java参数验证
- java后台跳转带参数
- 51Nod-2000-四边形分割平面
- 真实可用selenium3.5.0+python3.6.3环境搭建
- LeetCode题解:121. Best Time to Buy and Sell Stock
- eclipse spring环境搭建
- AutoCAD .Net 绘制临时图形
- java validation 后台参数验证
- unity+action使用函数作为传参(匿名函数)
- js浏览器截图
- 2017-12-10战斗有限状态机FSM
- 小学期实践
- Ciclop开源3D扫描仪软件---Horus源码分析之point_cloud_roi.py
- C/C++ --IO小程序附带运行过程 & get()函数解析
- 《机器学习实战》——2.k-近邻算法(KNN )函数总结
- JSP+MVC基础知识