Struts2 使用动态变量通过列表进行嵌套迭代

Struts2 nested iteration through Lists using dynamic variables

我正在遍历 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>

首先#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>

无需在表达式部分强制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>