请选择 进入手机版 | 继续访问电脑版
本站特色:极好的技术研究氛围!所有技术交流,必有回复!

疯狂Java联盟

 找回密码
 加入联盟
查看: 18974|回复: 13

Struts2的OGNL表达式中三个符号的用法。

  [复制链接]
发表于 2008-6-10 21:54:24 | 显示全部楼层 |阅读模式
OGNL表达式中可以使用$、#、和%三个符号。
通常时候,%很少使用。

但#的用法非常广泛,
1.直接在表达式中生成Map对象时就是用该符号。
2.访问Stack Context中的值都需要使用。
3.在表达式中生成Map集合。

$的用法:
1.取出集合元素的最后一个元素。
2.直接访问ValueStack根的属性。
如下图所示:


如果实在不懂,使用<s:debug/>看一下这个调试页,然后决定用#或$吧。

Struts2还提供了一些命名对象,这些命名对象与根对象无关,它们只是存在于Stack Context中。所以,访问这些对象时需要使用#前缀来指明。
1.parameters对象:用于访问HTTP请求参数。例如#parameters['foo']或#parameters.foo,用于返回调用HttpServletRequest的getParameter("foo")方法的返回值。
2.request对象:用于访问HttpServletRequest的属性。例如# request ['foo']或# request.foo,用于返回调用HttpServletRequest的getAttribute("foo")方法的返回值。
3.session对象:用于访问HttpSession的属性。例如# session ['foo']或# session.foo,用于返回调用HttpSession的getAttribute("foo")方法的返回值。
4.application对象:用于访问ServletContext的属性。例如# application ['foo']或# application.foo,用于返回调用ervletContext的getAttribute("foo")方法的返回值。
5.attr对象:该对象将依次搜索如下对象:PageContext、HttpServletRequest、HttpSession、ServletContext中的属性。
注意:当系统创建了Action实例后,该Action实例已经被保存到ValueStack中,故无需书写#即可访问Action属性。
clip_image002.jpg
发表于 2008-6-10 22:32:53 | 显示全部楼层
提供多一种访问静态方法和变量的方式.
@className@variableName
@className@methodName()

以下是一个例子
@examples.chap8.Muppet@OG_MUPPET
@examples.chap8.Muppet@getOgMuppet()
 楼主| 发表于 2008-6-10 22:50:16 | 显示全部楼层
这个我也没用过啊。
@className@variableName直接用?
还是要放在标签库中用?
发表于 2008-6-11 10:51:01 | 显示全部楼层
看来老李在用Vista啊,有钱人就是不同...
发表于 2008-6-11 10:58:50 | 显示全部楼层
原帖由 kongyeeku 于 2008-6-10 22:50 发表
这个我也没用过啊。
@className@variableName直接用?
还是要放在标签库中用?


直接在标签里面用~~
 楼主| 发表于 2008-6-11 20:14:07 | 显示全部楼层
这样?
<s:property value="@java.lang.Math@random()"/>
??
你是在ww里试过?还是S2里已经成功试过?
发表于 2008-6-11 20:46:31 | 显示全部楼层
在webwork试过,struts2都是用的OGNL,应该也可以用吧
 楼主| 发表于 2008-6-11 21:33:14 | 显示全部楼层
恩。请重试一下。
我用如下代码:
<s:property value="@java.lang.Math@random()"/>
在S2的页面中看不到任何输出。
发表于 2008-6-11 23:49:26 | 显示全部楼层
<ww:property value="@java.lang.Math@random()"/>

我试过webwork可以,难道s2不支持了?



[ 本帖最后由 Nicholas 于 2008-6-11 23:52 编辑 ]
static.jpg
 楼主| 发表于 2008-6-12 00:07:10 | 显示全部楼层
那就对了。
您需要登录后才可以回帖 登录 | 加入联盟

本版积分规则

视频、代码、电子书下载
请关注"疯狂图书"公众号
QQ交流1群: 545923995  未满
微信群请扫二维码
QQ交流1群:
545923995
(未满)

小黑屋|手机版|Archiver|疯狂Java联盟 ( 粤ICP备11094030号 )

GMT+8, 2019-3-24 15:14 , Processed in 0.326855 second(s), 9 queries , File On.

快速回复 返回顶部 返回列表