2015-03-18 3 views
2

Я выполняю итерацию через List<SomeObject>, но хочу только распечатать определенные атрибуты SomeObject в зависимости от атрибутов, указанных в другом List. Пока у меня это есть. Что я не уверен, как использовать элемент в List как атрибут SomeObject, который я хочу распечатать.Вложенная итерация Struts2 через списки с использованием динамических переменных

<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> 
+0

Это не адекватное название для атрибутов объекта. Вы должны проверить синтаксис OGNL своих выражений. –

ответ

0

Прежде всего #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> 
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>