“#”主要有三种用途:
1. 访问OGNL上下文和Action上下文,#相当于ActionContext.getContext();下表有几个ActionContext中有用的属性:
attr 用于按request > session > application顺序访问其属性(attribute)
#attr.userName相当于按顺序在以上三个范围(scope)内读取userName属性,直到找到为止
parameters 包含当前HTTP请求参数的Map
#parameters.id[0]作用相当于request.getParameter("id")
request 包含当前HttpServletRequest的属性(attribute)的Map
#request.userName相当于request.getAttribute("userName")
session 包含当前HttpSession的属性(attribute)的Map
#session.userName相当于session.getAttribute("userName")
application 包含当前应用的ServletContext的属性(attribute)的Map
#application.userName相当于application.getAttribute("userName")
2. 用于过滤和投影(projecting)集合,如books.{?#this.price<100};
3. 构造Map,如#{'foo1':'bar1', 'foo2':'bar2'}。
“%”的用途是在标志的属性为字符串类型时,计算OGNL表达式的值。例如在Ognl.jsp中加入以下代码:
<h3>%的用途</h3>
<p><s:url value="#foobar['foo1']" /></p>
<p><s:url value="%{#foobar['foo1']}" /></p>
“$”有两个主要的用途 :
1. 用于在国际化资源文件中,引用OGNL表达式,例子请参考《在Struts 2.0中国际化(i18n)您的应用程序》
2. 在Struts 2配置文件中,引用OGNL表达式,如
<action name="AddPhoto" class="addPhoto">
<interceptor-ref name="fileUploadStack" />
<result type="redirect">ListPhotos.action?albumId=${albumId}</result>
</action>
分享到:
相关推荐
struts2 中 OGNL表达式的使用struts2 中 OGNL表达式的使用
struts2中ognl表达式的用法,详细介绍了ognl表达式与struts2基本标签的结合。
Struts 2默认的表达式语言是OGNL,原因是它相对其它表达式语言具有下面几大优势: 1、 支持对象方法调用,如xxx.doSomeSpecial(); 2、支持类静态的方法调用和值访问,表达式的格式为@[类全名(包括包路径)]@...
struts2OGNL表达式ActionContext及valuesStack.pdf
NULL 博文链接:https://chaoyi.iteye.com/blog/2158731
struts2 OGNL,struts2 表达式语言,Struts2 中OGNL表达式的用法,Struts2 #,表达式语言的好处,Struts2 $,struts2 井号,星号,百分号
Struts2的标签库及OGNL表达式语言
struts2标签和OGNL表达式struts2标签和OGNL表达式
OGNL是对象图导航语言(即该表达式访问的是对象及对象的属性)
struts2-OGNL表达式测试代码
NULL 博文链接:https://cdxs2.iteye.com/blog/1926840
主要介绍了Struts2 OGNL表达式实例详解,相关实例代码,需要的朋友可以参考。
本资源适合刚接触Struts和Ognl的小伙伴交流学习,欢迎吐槽。
NULL 博文链接:https://johnson2132.iteye.com/blog/720769
struts2标签和OGNL表达式.pdf
ognl表达式在struts中的用法解析
最近的项目开发中使用了struts2的框架,但是好多人都不清楚struts2的标签的具体的用法,要想完全掌握struts2标签的用法,那么你必须先精通了struts2中OGNL的用法。struts2中很多东西其实理解就行,但是惟独OGNL虽然...
NULL 博文链接:https://takeme.iteye.com/blog/1668255
2、支持类静态的方法调用和值访问,表达式的格式为@[类全名(包括包路)]@[方法名 | 值名],例如: @java.lang.String@format('foo %s', 'bar')或@tutorial.MyConstant@APP_NAME; 3、支持赋值操作和表达式串联,...
1、 理解Struts2的类型转换类型 2、 理解局部类型转换器与全局类型转换器的区别 3、 掌握Struts2的自定义类型转换 4、 理解OGNL表达式语言