在struts2中迭代两个列表

时间:2013-12-06 11:28:11

标签: java java-ee struts2 iterator nested-loops

我有两个列表selectedFields,其中包含标题(例如:idusernamefirstname)和custDetails,其中包含客户详细信息(例如: :idusernamefirstnamebirthdateaddress等)。我想在这里做的只打印custDetails<td>selectedFields中包含<td>John</td>的数据。如果selectedFields包含用户名,那么只有用户名值会显示为<th>username</th> }和标题将像<table> <thead> <!-- Selected Fields contains id,username --> <s:iterator value="selectedFields"> <th><s:property/></th> </s:iterator> </thead> <tbody> <!-- custDetails contains id,username,firstname,lastname,address,city,state etc. --> <s:iterator value="custDetails" status="custDetails"> <tr> <s:iterator value="selectedFields" status="selectedFields"> <!-- Display only id,username columns from custDetails since selectedFields contains these values --> <td><s:property value="<s:property />"/></td> </s:iterator> </tr> </s:iterator> </tbody> </table>

{{1}}

1 个答案:

答案 0 :(得分:0)

您可以使用ifelse标记来选择要显示的列。除非您不想迭代对象属性。

<s:iterator var="sf" value="selectedFields">
  <!-- Display only id,username columns from custDetails since selectedFields contains these values --> 
  <s:if test="#sf == 'id'"> 
   <td><s:property value="id"/></td>
  </s:if>
  <s:else>
  <s:if test="#sf == 'username'"> 
   <td><s:property value="username"/></td>
  </s:if>
  </s:else>
</s:iterator>