我正在尝试动态生成一个包含其列的表。
目前,这是我的代码:
<s:iterator value='entities' var="entity">
<tr>
<s:iterator value="beanMD.fieldsMetaData" var="fieldMD" >
<td><s:property value="#entity.email"/> <!-- Prints OK : email@email.com -->
<s:property value="#fieldMD.value.name"/> <!-- Prints OK : email-->
<s:property value="#entity.%{#fieldMD.value.name}" /> <!-- Nothing -->
<s:property value="#entity.%{fieldMD.value.name}" /> <!-- Nothing -->
<s:property value="entity.%{fieldMD.value.name}" /> <!-- Nothing -->
<s:property value="entity.%{#fieldMD.value.name}" /> <!-- Nothing -->
</td>
</s:iterator>
</tr>
</iterator>
实体它是带有数据的 bean 的集合。
beanMD.fieldsMetadata
是一个 Map,其中包含实体的属性。
在上面的示例中,我使用属性“email”作为示例。如果我直接询问属性,它会返回 OK。如果我问列名,也可以。但我找不到一起使用的方法。
这篇文章似乎是相关的, Struts2 with Nested Iterator dynamic column and rows 但它使用了所有地图,对我没有多大帮助。