博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
3.数据校验和SpringEL
阅读量:6088 次
发布时间:2019-06-20

本文共 1294 字,大约阅读时间需要 4 分钟。

1.数据验证

数据验证不应该被限定在web层去处理,他应该在任何需要做数据验证的地方做验证;

基于以上考虑,Spring设计了一个既方便又可以在所有层使用的Validator接口

Spring提供了Validator接口来进行对对象的验证,该接口实现2个方法

supports(Class)-判断该validator是否能校验提供的class的实例
validate(Object, org.springframework.validation.Errors)- 校验给定的对象,如果有校验失败信息,将其放入Errors对象

 

另外,Spring还完全支持JSR-303 Bean Validation

Hibernate Validation是Bean Validation的参考实现,提供了JSR-303规范的所有内置实现
SpringMVC还支持声明式验证@Controller输入。

2.SpringEL简介

Spring表达式语言(简称SpEL)是一个支持查询和操作运行时对象导航图功能的强大的表达式语言

它的语法类似于传统EL,但提供额外的功能,最出色的就是函数调用和简单字符串的模板函数
虽然SpEL引擎作为Spring 组合里的表达式解析的基础 ,但它不直接依赖于Spring,可独立使用

 

SpEL支持以下功能:

文字表达式 布尔和关系运算符 正则表达式
类表达式 访问 properties, arrays, lists, maps
方法调用 关系运算符 调用构造函数
Bean引用 构造Array 内嵌lists
内嵌maps 三元运算符 用户定义的函数
集合投影 集合筛选 模板表达式

 

接口ExpressionParser负责解析表达式字符串,例如:

3.SpringEL使用

SpEL是类似于OGNL和JSF EL的表达式语言,能够在运行时构建复杂表达式,存取对象属性、对象方法调用

SpEL表达式可以与XML或基于注解的配置元数据使用定义
定义表达式的语法形式:#{<表达式字符串>}

 

基于XML的配置元数据

基于注解的配置元数据:

SpringEL使用实例:

1.方法  2.构造 3.操作符 4.集合

SpringEL方法:

SpringEL允许开发者将一个对象的属性注入给另一个对象属性,也可以调用一个对象的方法,并将返回值注入给另一个对象的属性。

 

 

SpringEL 构造:

SpringEL允许开发者调用new关键字,实现构造方法调用,并实例化出对象

SpringEL支持大多数的算数运算符、关系运算符、逻辑运算符、三元运算符等

SpringEL集合

SpringEL支持对List、Properties、Map等集合的操作,还支持集合选择、集合投影等

 

SpringEL集合选择

.?[]可以设置筛选条件
.^[]获取第一个匹配项
.$[]获取最后一个匹配项

SpringEL集合投影

.![]可以选择特定属性

 

 

SpringEL 集合选择和集合投影结合使用

转载于:https://www.cnblogs.com/Firesun/p/9909379.html

你可能感兴趣的文章
linux下gimp工具栏,PhotoGIMP:让Linux下的GIMP交互体验就像Photoshop
查看>>
c语言二叉树函数,二叉树C语言算法,急!!!!
查看>>
Android创建多线程并管理,Android中创建多线程管理器实例
查看>>
android反向投影,高斯反向投影实现检测图像中的特定物
查看>>
html底部浮动按钮组,Material design风格浮动按钮特效
查看>>
Green Plum测试报告
查看>>
AD-Powershell for Active Directory Administrators
查看>>
话里话外:成功CEO的用人之道——按需激励
查看>>
来自科学网博主的问候
查看>>
suse linux 10 ftp服务配置
查看>>
20141216 广州MVP线下聚会
查看>>
《高性能Linux服务器构建实战Ⅱ》已出版发售,附封面照!
查看>>
.NET Micro Framework开发板用户简明手册(v2.0)
查看>>
[Ruby] 类型和方法
查看>>
LACP链路聚合-基础篇
查看>>
微软宣布 SQL Server 2019 预览版
查看>>
使用Cobbler批量部署Linux操作系统
查看>>
为IE或者Firefox安装Adobe Flash Player 11
查看>>
python 关于epoll的学习
查看>>
某度质量部测试开发面试题4(未完待续)
查看>>