#、%和$符号在OGNL表达式中经常出现,而这三种符号也是开发者不容易掌握和理解的部分。在这里笔者简单介绍它们的相应用途。
1.#符号的用途一般有三种。
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':'bar','foo2':'bar2'}" />
<p>The value of key "foo1" is <s:property value="#foobar['foo1']" /></p>
<p>不使用%:<s:url value="#foobar['foo1']" /></p>
<p>使用%:<s:url value="%{#foobar['foo1']}" /></p>
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>
分享到:
相关推荐
OGNL中的#、%和$符号用法说明
OGNL表达式中的#、%和$.txt12312313213212312332212132
struts2的ognl
本资源适合刚接触Struts和Ognl的小伙伴交流学习,欢迎吐槽。
从官网checkout下来的源码,如果大家觉的区官网麻烦可以直接下载这个
Struts2学习计划5---Struts2_OGNL(对象图导航语言)的学习
主要是ognl的用法,很适合新手上路的,源代码很清晰可见,一看就懂
OGNL是通常要结合Struts 2的标志一起使用,如等。大家经常遇到的问题是#、%和$这三个符号的使用。下面我想通过例子讲述这个问题: 首先新建名为Struts2_OGNL的Web工程,配置开发环境。之前很多朋友在使用Struts 2的...
struts2 中 OGNL表达式的使用struts2 中 OGNL表达式的使用
Struts2中ognl-2的源代码,从官网下载的
本案例提供ognl使用详解,测试通过,只需解压放入自己WEB项目中,执行struts_ognl包内java文件即可(未提供jia包,若需要可以联系留言发至邮箱),若测试不好可以联系本人提供指导. Struts 2默认的表达式语言是OGNL...
struts2_ognl基本用法.docstruts2_ognl基本用法.docstruts2_ognl基本用法.docstruts2_ognl基本用法.docstruts2_ognl基本用法.docstruts2_ognl基本用法.docstruts2_ognl基本用法.docstruts2_ognl基本用法.docstruts2_...
Struts2 OGNL---标签详解析 都有实例 适合初学者
struts2中ognl表达式的用法,详细介绍了ognl表达式与struts2基本标签的结合。
有对struts2标签和OGNL的总结。
struts2 OGNL的主要用法 基本覆盖全部
struts2 ognl2.6.11源代码,官网上下要很麻烦,麻烦的事就我帮各位做了
关于struts2 OGNL 详细教程,对初学者有帮助
关于struts2中ognl的说明、原理及使用,对于初学者进阶是个不错的参考