Ognl表达式(根据Apache-Ognl文档直译)
1. 什么是Ognl
OGNL 代表 Object-Graph Navigation Language;它是一种表达式语言,用于获取和设置 Java 对象的属性,以及其他附加功能,例如列表投影和选择以及 lambda 表达式。您可以使用相同的表达式来获取和设置属性的值。Ognl 类包含评估 OGNL 表达式的便捷方法。您可以分两个阶段执行此操作,将表达式解析为内部形式,然后使用该内部形式设置或获取属性的值;或者您可以在一个阶段完成,并直接使用表达式的字符串形式获取或设置属性。OGNL 最初是作为一种使用属性名称在 UI 组件和控制器之间建立关联的方法。随着对更复杂关联的渴望不断增长,Drew Davidson 在 Luke Blanshard 的怂恿下创建了他所谓的 KVCL,即键值编码语言。然后,Luke 使用 ANTLR 重新实现了该语言,提出了新名称,并在 Drew 的怂恿下将其填充到当前状态。后来 Luke 再次使用 JavaCC 重新实现了该语言。 Drew 对所有代码进行了进一步的维护(在 Luke 的精神指导下)。我们将 OGNL 发音为一个单词,就像“正交”的醉酒发音的最后一个音节。
2.Ognl语法
基本的 OGNL 表达式非常简单。 该语言的功能已经变得相当丰富,但您通常不必担心该语言中更复杂的部分:简单的情况仍然如此。 例如,要获取对象的名称属性,OGNL 表达式就是名称。 要获取headline 属性返回的对象的text 属性,OGNL 表达式是headline.text。
什么是property? 粗略地说,OGNL 属性与 bean 属性相同,这意味着一对 get/set 方法,或者一个字段,定义了一个属性
OGNL 表达式的基本单元是导航链,通常简称为“链”。 最简单的链由以下部分组成:
表达式元素部分 | 例子 |
---|---|
属性名称 | like the name and headline.text examples above |
方法调用 | hashCode() to return the current object’s hash code(返回对象的hashcode) |
数组索引 | listeners[0] to return the first of the current object’s list of listeners (返回第一个) |
- 所有 OGNL 表达式都在当前对象的上下文中进行评估,并且链只是将链中前一个链接的结果用作下一个链接的当前对象。 您可以随意延长链条。 例如,这个链:
name.toCharArray()[0].numericValue.toString()
- 此表达式按照以下步骤进行评估:
- extracts the name property of the initial, or root, object(
Ognl表达式(根据Apache-Ognl文档直译)相关推荐
- mysql pmod项目_内置函数 - 数学函数 - 《Apache Doris 文档(201812)》 - 书栈网 · BookStack...
数学函数 abs(double a) 功能: 返回参数的绝对值 返回类型:double类型 使用说明:使用该函数需要确保函数的返回值是整数. acos(double a) 功能: 返回参数的反余弦值 ...
- ognl表达式 讲解
1. 数据传输背后机制:ValueStack(值栈) 在这一切的背后,是因为有了ValueStack(值栈)! ValueStack基础:OGNL 要了解ValueStack,必须先理解OGN ...
- Struts2漏洞分析之Ognl表达式特性引发的新思路
摘要 在Ognl表达式中,会将被括号"()"包含的变量内容当做Ognl表达式执行.Ognl表达式的这一特性,引发出一种新的攻击思路.通过将恶意代码存储到变量中,然后在调用Ognl表 ...
- Struts2之OGNL表达式语言
1.OGNL是Object-Graph Navigation Language的缩写,是一种功能强大的表达式语言,通过它简单一致的表达式语法,可以存取对象的任意属性,调用对象的方法,遍历整个对象的结构 ...
- 深入分析JavaWeb Item48 -- Struts2中OGNL表达式与ValueStack
一.OGNL表达式 1.OGNL表达式介绍 OGNL是Object Graphic Navigation Language(对象图导航语言)的缩写,它是一个开源项目. Struts2框架使用OGNL作 ...
- struts2教程(9)--OGNL表达式使用
OGNL表示式使用和值栈 一.介绍 OGNL是Object Graphic Navigation Language(对象图导航语言)的缩写,它是一个开源项目. Struts2框架使用OGNL作为默认的 ...
- tomcat和apache的结合 看最重要的 文档有点乱
tomcat的安装 官网下载:tomcat 解压,mv /apache-tomcat-7.0.69 /usr/local/tomcat cp -pv /usr/local/tomcat/bin/ca ...
- Struts 2的OGNL表达式
来源:http://www.24xuexi.com/w/2011-04-26/88911.html Struts 2的OGNL表达式 标准的OGNL会设定一个根对象(root对象).假设使用标准OGN ...
- struts2值栈,OGNL表达式,interceptor
struts2获取servlet api 第一种获取方式 获得原生request HttpServletRequest request = ServletActionContext.getReques ...
- 【OGNL表达式struts2标签“%,#,$”】
一.什么是OGNL,有什么特点? OGNL(Object-Graph Navigation Language),大概可以理解为:对象图形化导航语言.是一种可以方便地操作对象属性的开源表达式语言.OGN ...
最新文章
- 图像处理(四)图像分割(2)测地距离Geodesic图割
- Mysql与Sql Server查询数据库中表以及表字段
- 数据结构05数组和广义表
- github ssh 配置_Github远程仓库克隆更新本机,SSH协议免密操作配置和注意事项
- 请各位程序员 正在创业的 正在努力赚钱的 好好看看下面的话
- WORD如何设置第X页,共Y页页码设置?
- MySQL(16)--- DELETE 语句
- 十年维护专家的“秘籍
- 心情有些复杂,不知道还能做多久,未来也不知道该如何选择
- 牵手大众、现代,滴滴绯闻“女友”Aurora无人车启动商业化
- 闲聊libhybris
- Telnet 网络设备分页
- 一种基于flex的可视化多层流量切分界面的实现
- poj 3280 Cheapest Palindrome (dp)
- AIML框架标签详解
- NVIDIA GPU显卡介绍
- 爬虫在遇到post请求时的一种解决{“code“:40005,“msg“:“req json error“}问题的思路
- 几何代数(Geometric Algebra 也叫克利福德代数 Clifford Algebra)简介
- SpringCloud五大神器(对比Dubbo+Zookeeper)
- 怎样通过几何画板绘制相似三角形
热门文章
- PE盘PE系统盘制作
- 计算机课flash课件,flash动画制作获奖课件
- 连锁店管理系统有什么特点?便利店管理系统的优势
- Linux下Weblogic部署安装
- 浪潮服务器安装ESXI6.7 无raid驱动解决方案
- IIS6 JQuery 未定义 解决办法
- 硬核桌面美化,让Windows电脑像Mac一样充满高级感!
- 感谢蜂窝教育,四个月的学习,让我改变了
- fckeditor for php 下载,PHP_FCKeditor的安装(PHP),1.下载新最版的FCKEditor,解压 2. - phpStudy...
- UE4 - 默认鼠标指针的样式修改自定义
- mysql pmod项目_内置函数 - 数学函数 - 《Apache Doris 文档(201812)》 - 书栈网 · BookStack...
- extracts the name property of the initial, or root, object(