Java 在struts2中迭代两个列表

Java 在struts2中迭代两个列表,java,jakarta-ee,struts2,iterator,nested-loops,Java,Jakarta Ee,Struts2,Iterator,Nested Loops,我有两个列表,selectedFields,其中包含标题(例如:id,username,firstname)和custDetails,其中包含客户详细信息(例如:id,username,firstname,出生日期,地址等)。我想在这里只打印中custDetails的数据,这些数据包含在selectedFields中。如果selectedFields包含username,则只有username值将显示为John,标题将显示为username 您可以使用if和else标记来选择要显示的列。除非您不

我有两个列表,
selectedFields
,其中包含标题(例如:
id
username
firstname
)和
custDetails
,其中包含客户详细信息(例如:
id
username
firstname
出生日期
地址
等)。我想在这里只打印
custDetails
的数据,这些数据包含在
selectedFields
中。如果selectedFields包含username,则只有username值将显示为
John
,标题将显示为
username


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

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


构建要在Java端显示的内容;保持视图层简单。@DaveNewton有可能这样做吗?迭代器太多,你迭代什么?我想迭代custDetails(id、用户名、名字、姓氏、出生日期、地址、城市、州、国家),其中包含3条记录,但只显示包含在所选字段(id、用户名)中的列。custDetails:List selectedFields:ListSure,这是可能的,但很难读取、维护和测试。
<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>