关于OGNL表达式中的%,$,#
1)访问非根对象属性,例如示例中的#session.msg表达式,由于Struts 2中值栈被视为根对象,所以访问其他非根对象时,需要加#前缀。实际上,#相当于ActionContext. getContext();#session.msg表达式相当于ActionContext.getContext().getSession(). getAttribute(”msg”) 。
2)用于过滤和投影(projecting)集合,如示例中的persons.{?#this.age>20}。
3)用来构造Map,例如示例中的#{’foo1′:’bar1′, ’foo2′:’bar2′}。
2.%符号
%符号的用途是在标志的属性为字符串类型时,计算OGNL表达式的值。如下面的代码所示:
构造Map
<s:set name=”foobar” value=”#{’foo1′:’bar1′, ‘foo2′:’bar2′}” />
The value of key “foo1″ is <s:property value=”#foobar['foo1']” />
不使用%:<s:url value=”#foobar['foo1']” />
使用%:<s:url value=”%{#foobar['foo1']}” />
3.$符号
$符号主要有两个方面的用途。
在国际化资源文件中,引用OGNL表达式,例如国际化资源文件中的代码:reg.agerange=国际化资源信息:年龄必须在${min}同${max}之间。
在Struts 2框架的配置文件中引用OGNL表达式,例如下面的代码片断所示:
<validators>
<field name=”intb”>
<field-validator type=”int”>
<param name=”min”>10</param>
<param name=”max”>100</param>
<message>BAction-test校验:数字必须为${min}为${max}之间!</message>
</field-validator>
</field>
</validators>
转载于:https://www.cnblogs.com/wshwenwen/archive/2010/05/14/1735522.html
关于OGNL表达式中的%,$,#相关推荐
- #、%和$符号在OGNL表达式中的作用
#.%和$符号在OGNL表达式中经常出现,而这三种符号也是开发者不容易掌握和理解的部分.在这里笔者简单介绍它们的相应用途. 1.#符号的用途一般有三种. 1)访问非根对象属性,例如示例中的#se ...
- OGNL表达式中的#、%和$
标签: OGNL 表达式 2009-05-16 13:18 OGNL表达式非常强大-其中#.%.$这三个符号在OGNL表达式中经常出现,而这三种符号也是开发者不容易掌握和理解的部分,要认真区分. ...
- ognl表达式中%{}的作用
在struts2字符串中用%{}指出,其内部是一个ognl表达式,需要解析. 如<s:textfield lable="user" name="user" ...
- Struts2中的OGNL表达式的详解
首先了解下OGNL的概念: OGNL是Object-Graph Navigation Language的缩写,全称为对象图导航语言,是一种功能强大的表达式语言,它通过简单一致的语法,可以任意存取对象的 ...
- Struts2漏洞分析之Ognl表达式特性引发的新思路
摘要 在Ognl表达式中,会将被括号"()"包含的变量内容当做Ognl表达式执行.Ognl表达式的这一特性,引发出一种新的攻击思路.通过将恶意代码存储到变量中,然后在调用Ognl表 ...
- Struts标签和OGNL表达式
Struts标签和OGNL表达式 1.OGNL通过索引访问ValueStack中的对象. [0].name [1].name 上面使用的索引的方式并不是直接取得指定元素,而是从指定索引开始向下搜索. ...
- Struts 2的OGNL表达式
来源:http://www.24xuexi.com/w/2011-04-26/88911.html Struts 2的OGNL表达式 标准的OGNL会设定一个根对象(root对象).假设使用标准OGN ...
- OGNL表达式的基本语法和用法
一.OGNL中的#.%和$符号 #.%和$符号在OGNL表达式中经常出现,而这三种符号也是开发者不容易掌握和理解的部分.在这里我们简单介绍它们的相应用途. 1.#符号的三种用法 1)访问非根对象属性, ...
- OGNL表达式原理及使用
OGNL :object graph navigation language,对象图形导航语言,一种表达式语言. 为什么出现: 在我们所熟悉的mvc框架中,数据是在各层之间进行流转使用的. ...
最新文章
- mongo 多条件筛选_如何制作提交按钮,实现多条件筛选
- Qt Creator Qt Quick用户界面表单ui-forms
- js 获取url参数(QueryString)
- Lyft Level 5 Challenge 2018 - Elimination Round翻车记
- JAVA 取得当前目录的路径/Servlet/class/文件路径/web路径/url地址
- 如何在yml中加上git用户名和密码的验证_使用Apollo升级一下yml文件管理和发布
- 详解Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点
- python控制浏览器最小化_如何在selenium webdriver 3中最小化浏览器窗口
- loadrunner11下载
- CVE-2018-18311 阿里云漏洞修复 RHSA-2019:0109-Important: perl secur
- veu 中 nprogress 的 使用方法
- 鸿蒙系统支持列表,华为鸿蒙系统支持的手机型号一览【最新】
- android+屏幕色彩度,对比度/色阶/色彩 屏幕显示对比_索尼 Xperia Z2_手机Android频道-中关村在线...
- EfficientNet网络详解
- 推荐个免费ppt模板下载网站
- 使用C++,用四阶Runge-Kutta的方法来求解一阶常微分方程
- 如果定制开发一款小程序
- java 304_304 Not Modified状态码
- 开发Unity3D空战类插件 战机游戏模板
- Opencv项目实战:19 手势控制鼠标
热门文章
- 2022-2028年中国氯磺化聚乙烯橡胶行业市场深度分析及未来趋势预测报告
- Python多线程(3)——Queue模块
- LeetCode简单题之增量元素之间的最大差值
- 华为公有云架构解决方案
- 摄像头Camera标定Calibration原理Theory
- 2021年大数据Flink(三):​​​​​​​Flink安装部署 Local本地模式
- zookeeper原理特点案例
- python 判断字典是否包含某个key,以及对应的value 值
- Android 属性动画(Property Animation) ValueAnimator 的介绍
- The form contains the following errors