我有一个具有结构的数据模型: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
. 有什么简单的解决方法吗?