【问题标题】:Struts2 nested iteration through Lists using dynamic variablesStruts2 使用动态变量通过列表进行嵌套迭代
【发布时间】:2015-05-21 14:53:53
【问题描述】:

我正在遍历List<SomeObject>,但我只想根据另一个List 中指定的属性打印出SomeObject 的某些属性。到目前为止,我已经明白了。我不确定,如何使用List中的项目作为我要打印出来的SomeObject的属性。

<s:iterator value="theList" var="listItem" status="theListCount">
    <s:iterator value="listOfAttributes" var="attr" status="attrListCount">
        Attribute=<s:property value="#attr"/> Value=<s:property value='#listItem.[%{#attr}]'/>
    </s:iterator>
</s:iterator>

【问题讨论】:

  • 对象属性的名称不够。您应该检查表达式的 OGNL 语法。

标签: java list loops struts2 ognl


【解决方案1】:

表达式部分不需要强制OGNL

<s:iterator value="theList" var="listItem" status="theListCount">
    <s:iterator value="listOfAttributes" var="atr" status="attrListCount">
        Attribute=<s:property value="#atr"/> Value=<s:property value="#listItem[#atr]"/>
    </s:iterator>
</s:iterator>

【讨论】:

    【解决方案2】:

    首先#attr是一个保留关键字,所以不要把它当作变量值。并使用[] 表示法来引用对象的属性。

    <s:iterator value="theList" var="listItem" status="theListCount">
      <s:iterator value="listOfAttributes" var="atrbt" status="attrListCount">
          Attribute=<s:property value="#atrbt"/> Value=<s:property value="#listItem[#atrbt]"/>
      </s:iterator>
    </s:iterator>
    

    【讨论】:

      猜你喜欢
      • 2014-06-08
      • 1970-01-01
      • 1970-01-01
      • 2016-04-05
      • 1970-01-01
      • 2020-07-11
      • 1970-01-01
      • 1970-01-01
      • 2012-12-17
      相关资源
      最近更新 更多