Лучший способ создать расширяемую / складную подтаблицу с помощью rich: dataTable

Я недавно портировал приложение из JSF 1.1 в JSF 1.2. В процессе мы удалили томагавк и решили использовать вместо него богатые.

Теперь мне нужен способ сделать расширяемую / складывающуюся деталь Viev для каждой строки в таблице.

Единственное, о чем я могу думать, это что-то вроде этого (адаптировано из документации на docs.jboss.com):

<rich:dataTable value="#{capitalsBean.capitals}" var="capitals">
    <rich:column>
        ...
    </rich:column>
    <rich:subTable value="#{capitals.details}" var="detail" ajaxKeys="#{bean.ajaxSet}" binding="#{bean.subtable}" id="subtable" rendered="detail.detailOpened">
        <rich:column>
            ...
        </rich:column>
    </rich:subTable>
</rich:dataTable>

Я думаю, что-то подобное сработало бы. Проблема в том, что мне нужно либо добавить getDetailOpened и setDetailOpened к объектам, которые я использую, либо обернуть каждый объект в другой объект, который предоставляет эти два метода.

Кто-нибудь знает лучший способ или как это сделать?

11.12.2008 09:55:26
1 ОТВЕТ

Я часто добавляю методы к моим bean-компонентам (или bean-компонентам-оберткам), которые содержат эти свойства, как способ работы с JSF. Это не красиво, но это работает.

Единственный другой вариант, о котором я могу подумать в данный момент, - это использовать функцию JavaScript для переключения состояния представления сведений. Это не было бы идеально по ряду причин, но избавило бы вас от необходимости сохранять состояние на стороне сервера.

1
12.12.2008 11:57:15