如何使用display:table来在列表中显示地图

时间:2017-09-18 13:10:40

标签: jsp displaytag

我有一个包含字符串+地图属性的VO对象。这个对象正在形成一个列表然后我试图使用display:table来显示这个列表。对于所有字符串属性显示:列是正常但对于使用display的地图代码:列变得困难,因为地图的键形成标题,必须仅显示一次作为最后一个显示的标题:列和值将必须迭代。我看到了两个选项:使用display:table in display:column或迭代地图。但是使用display:table中的列我可以看到标题为静态(在我的情况下不是这样)。

没有显示的代码:table

<table id="prepaid" width="1120px" style="margin-left: 20px; border: 1px solid #7591AC;" cellSpacing=1 cellPadding=0 class=tabular>

            <logic:present name="provisioningStatisticsResultList">
                 <logic:iterate id="provisioningStatisticsResultListObj" name="provisioningStatisticsResultList" indexId="index">                    
                    <bean:define id="mapEntry" name="provisioningStatisticsResultListObj" property="rangeMap" />
                    <tr>
                    <logic:equal name="index"  value="0">
                         <th><bean:message key="label.applicationId" bundle="labels" /></th>
                         <th><bean:message key="label.version" bundle="labels" /></th>  
                         <th><bean:message key="label.results" bundle="labels" /></th>  

                         <logic:iterate id="map" name="mapEntry">
                            <th><bean:write name="map" property="key" /></th>
                         </logic:iterate>
                    </logic:equal>
                     </tr>
                        <tr class="tableRowEven">

                        <td class="td.iconCell"><bean:write name="provisioningStatisticsResultListObj" property="applicationId" /></td>
                        <td><bean:write name="provisioningStatisticsResultListObj" property="apkVersion" /></td>
                        <td><bean:write name="provisioningStatisticsResultListObj" property="activationType" /></td>
                        <td><bean:write name="provisioningStatisticsResultListObj" property="status" /></td>
                        <logic:iterate id="map" name="mapEntry">
                            <td><bean:write name="map" property="value" /></td>
                        </logic:iterate>

                    </tr>
                 </logic:iterate>
            </logic:present>
</table>

使用display:table我尝试了各种选项但没有任何效果,可能是一些语法错误或其他解决方案(注释一个):                           

                     <display:table name="sessionScope.provisioningStatisticsResultList"
                        id="provisioningStatisticsResultListObj" defaultsort="1" defaultorder="ascending"
                        pagesize="<%= recordsPerPage %>" cellspacing="0" cellpadding="3"
                        requestURI="/provisioningStatistics.do" export="true"
                        class="data_table width_full" style="margin-left:20px;">

                        <display:column title="Application ID">
                        <bean:write name="provisioningStatisticsResultListObj" property="applicationId"/>
                        </display:column>
                        <display:column title="Version">
                        <bean:write name="provisioningStatisticsResultListObj" property="apkVersion"/>
                        </display:column>
                        <display:column title="Results">
                        <bean:write name="provisioningStatisticsResultListObj" property="status"/>
                        </display:column>
                        <bean:define id="mapEntry" name="provisioningStatisticsResultListObj" property="rangeMap" />
                        <logic:iterate id="map" name="mapEntry">
                            <display:column title="<bean:write name="map" property="key" />">
                            <bean:write name="map" property="value" /></display:column>
                         </logic:iterate>
                        <%-- <display:column property="rangeMap">
                        <display:table id="mapEntry" name="rangeMap" style="margin-left:20px;">
                           <display:column title = "<bean:write name="map" property="key" />" >
                        <bean:write name="map" property="value" />
                        </display:column>
                           </display:table>
                        </display:column> --%>


                        <%-- <logic:iterate id="map" name="mapEntry" property="rangeMap" indexId="index1"> 
                        <display:column title = "<bean:write name="map" property="key" />" >
                        <bean:write name="map" property="value" />
                        </display:column>
                    </logic:iterate> --%>
                    </display:table>

                    </tbody>
                    </table>

             </logic:present>

我的项目使用struts 1.请帮我纠正代码

1 个答案:

答案 0 :(得分:0)

您需要包含定义了<%@ taglib uri="http://displaytag.sf.net" prefix="display" %>标记的标记库:

.value()

另外,请确保jar文件displayTag.jar在您的类路径中。