Как напечатать LinkedHashMap, который находится внутри списка в JSF DataTable? - PullRequest
1 голос
/ 15 февраля 2011

Я могу напечатать item.srNor, но я не могу напечатать item.details (где данные LinkedHashMap)

В моем файле .xhtml есть следующие данные (jsf)

<h:dataTable id="dt1" value="#{Handler.List}" var="item">

    <h:column>
        <f:facet name="header">
            <h:outputText value="column1" />
        </f:facet>
        <h:outputText value="#{item.srNor}"></h:outputText>
    </h:column>

    <h:column>
        <f:facet name="header">
            <h:outputText value="column2" />
        </f:facet>
        <h:outputText value=""></h:outputText>
    </h:column>

    <h:column>
        <f:facet name="header">
            <h:outputText value="column3" />
        </f:facet>
        <h:outputText value=""></h:outputText>
    </h:column>

    <h:column>
        <f:facet name="header">
            <h:outputText value="column4" />
        </f:facet>
        <h:outputText value=""></h:outputText>
    </h:column>


    <f:facet name="footer">
        <h:outputText value="End" />
    </f:facet>

</h:dataTable>

Список в моем классе java является списком массивов.

Любое предложение по этому вопросу было бы очень полезно.

Спасибо

1 Ответ

1 голос
/ 15 февраля 2011

Я понимаю, что #{item.details} возвращает Map.Вы можете просто получить доступ к Map значениям по соответствующему ключу карты в EL следующим образом:

#{item.details.somekey}

Это разрешает под прикрытием item.getDetails().get("somekey").

Если сам ключ содержит зарезервированный ELсимволы, такие как точки и дефисы, тогда вы также можете использовать скобки:

#{item.details['some.key']}

Это разрешается до item.getDetails().get("some.key").

Или если сам ключ должен быть получен из другой переменной,затем используйте фигурную скобку без кавычек

#{item.details[otherbean.key]}

Это разрешается до item.getDetails().get(otherbean.getKey()).

...