代码之家  ›  专栏  ›  技术社区  ›  kaqqao

Struts 2-访问共享相同名称的ValueStack上的不同属性

  •  2
  • kaqqao  · 技术社区  · 15 年前

    struts2将在视图呈现期间首先针对ValueStack中的top对象解析所有属性名。但是如何访问堆栈较低对象上同名的属性呢?

    例子:

    假设我有一个名为MyAction的Action类,它有一个logDate属性。在调用此操作后呈现的视图中,有以下内容:

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

    现在假设一个用户对象也有一个logDate属性。在迭代过程中,struts2总是将当前用户对象推到ValueStack的顶部,从而有效地解析针对它的所有属性名。但是,如果我想访问行动的日志日期呢?正确的方法是什么?

    1 回复  |  直到 15 年前
        1
  •  3
  •   Rob Tanzola    15 年前

    可以使用索引查看子堆栈。例如: [0].logDate将在堆栈的停止处开始搜索,并在用户对象上找到logDate[1] .logDate将开始更深一层的搜索,并在Action类中找到logDate。这个 OGNL page (参见accessingstaticproperties头上方的部分)有更多的细节,这里是另一个 explanation .

    推荐文章