繁体   English   中英

动态的struts2对象字段名称

[英]Dynamic struts2 object field name

我正在尝试动态生成带有其列的表。

目前,这是我的代码:

<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具有嵌套的Iterator动态列和行,但是它使用了所有Maps,并没有太大帮助。

使用方括号从bean中获取价值。

<s:property value="#entity[#fieldMD.value.name]" />

这是可能的,因为在内部OGNL对待以下表达式完全相同。

所以

<s:property value="date.time" />

<s:property value="date['time']" />

产生相同的结果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM