2010-05-30 27 views
2

Struts 2将在视图渲染期间首先针对ValueStack中的顶层对象解析所有属性名称。但是,如何访问堆栈中较低对象上的同名属性?Struts 2 - 在ValueStack上访问共享相同名称的不同属性

例子:

比方说,我有一个Action类名为MyAction,它具有一个LOGDATE属性。在调用此操作后呈现的观点,有这样的:

 
<s:iterator value="users" status="itStatus"> 
    <s:property value="logDate"/> 
</s:iterator> 

现在想象一下,一个用户对象还有一个LOGDATE属性。在迭代过程中,Struts 2将始终将当前用户对象推送到ValueStack的顶部,从而有效地解决所有属性名称的问题。但是,如果我想从操作中访问logDate呢?什么是正确的方法来做到这一点?

回答

3

您可以使用索引查看子堆栈。例如: [0] .logDate将在堆栈的停止处开始搜索并在用户对象上查找logDate。 [1] .logDate将更深入地开始搜索,并在Action类中找到logDate。这OGNL page(请参阅访问静态属性标题上面的部分)有更多的细节,这里是另一个explanation

+0

不错!非常感谢您对此快速回答:) P.S. 有什么方法可以将问题标记为已回答? – kaqqao 2010-05-30 15:01:44

+0

你非常欢迎 - 很高兴它有帮助。答案旁边应该有一个空心的复选标记。点击它会将其变为绿色以接受它。 – 2010-05-30 19:29:20

相关问题