1

I have a data model with structure : TreeMap < String, TreeMap< String, Double>> resultMap; This is stored in a SessionScoped ManagedBean.

I am trying to output this via a dynamic < rich:extendedDataTable> where;

  • Key of first map is the row label
  • Value of first map is a second map ( corresponds to the columns on the row
  • Key of second map is the columns header
  • Value of second map is the columns value

Source Code:

<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>

Output:

Table output via source code

The first column is correctly outputting the keys of the first map. The second column (used for debugging) is correctly outputting the map structure ( when I apply .keySet() to the structure I do get all the correct keys ).

Using: jstl 1.2.0, jsf 2.1 - mojarra, richfaces 4.x, tomcat 7.

Update:

As stated here, the < c:forEach> has no access to the < rich:dataTable> attributes, hence unable to use key. Is there any simple workaround to this?

Community
  • 1
  • 1
eddie-ryan
  • 285
  • 1
  • 5
  • 19

0 Answers0