Как я могу условно сделать? - PullRequest
18 голосов
/ 06 декабря 2010

Я хотел бы иметь возможность условно опустить нижний колонтитул в элементе панели PrimeFaces:

<p:panel header="some text">
    <f:facet name="footer">
        #{message}
    </f:facet>
    <!-- ... -->
</p:panel>

Я надеялся, что атрибут rendered будет работать:

<p:panel header="some text">
    <f:facet name="footer" rendered="#{!empty message}">
        #{message}
    </f:facet>
    <!-- ... -->
</p:panel>

Но нижний колонтитул по-прежнему отображается с пустым содержимым. Похоже, что facet не имеет атрибута rendered: http://www.jsftoolbox.com/documentation/help/12-TagReference/core/f_facet.html.

Какой правильный способ сделать это?

Ответы [ 11 ]

0 голосов
/ 24 мая 2012

Почему бы вам не заключить содержимое нижнего колонтитула в PanelGroup с атрибутом рендеринга?

Таким образом:

<p:panel header="some text">
    <f:facet name="footer">
    <h:panelGroup rendered="#{!empty message}">
        #{message}
    </h:panelGroup>
    </f:facet>
    <!-- ... -->
</p:panel>

Я делаю это в моем приложении, и оно работает, нижний колонтитул не отображается.

Хотя я не использую простые символы, я делаю это с помощью h: datatable, но я думаю, что он должен работать и с p: panel.

...