1

我有一个具有结构的数据模型:TreeMap < String, TreeMap< String, Double>> resultMap; 它存储在一个SessionScoped ManagedBean.

我正在尝试通过动态< rich:extendedDataTable>where 输出它;

  • 第一张地图的关键是行标签
  • 第一个映射的值是第二个映射(对应于行上的列
  • 第二张地图的关键是列标题
  • 第二个地图的值是列值

源代码:

<rich:extendedDataTable
    value="#{queryBean.resultMap.keySet().toArray()}" var="key"
    frozenColumns="1" styleClass="rich-extdt">

    <rich:column width="75px">
        <f:facet name="header">
            <h:outputText value="Mediation" />
        </f:facet>
        <h:outputText value="#{key}" />
    </rich:column>

    <rich:column width="75px">
        <f:facet name="header">
            <h:outputText value="Test" />
        </f:facet>
        <h:outputText value="#{queryBean.resultMap[key]}" />
    </rich:column>

    <c:forEach items="#{queryBean.resultMap[key]}" var="map">

        <rich:column width="75px">
            <f:facet name="header">
                <h:outputText value="#{map.key}" />
            </f:facet>
            <h:outputText value="#{map.value}" />
        </rich:column>

    </c:forEach>

</rich:extendedDataTable>

输出:

通过源代码输出表格

第一列正确输出了第一张地图的键。第二列(用于调试)正确输出映射结构(当我应用.keySet()到结构时,我确实得到了所有正确的键)。

使用:jstl 1.2.0、jsf 2.1 - mojarra、richfaces 4.x、tomcat 7。

更新:

如此处所述,< c:forEach>无法访问< rich:dataTable>属性,因此无法使用key. 有什么简单的解决方法吗?

4

0 回答 0