1

他のコンポーネントの単なるコンテナであるが、独自の HTML 要素を生成しない JSF 2.0 コンポーネントを探しています。

私の状況では、(既にスタイル設定された) jsf-xhtml コンポーネント ページがあります。ここで、多くのレンダリングを無効にする必要があります。

<ui:component>
    <h:panelGroup layout="block" rendered="#{not empty user.registrations}">...</>
    <h:panelGroup layout="block" rendered="#{not empty user.registrations}">...</>
    <h:panelGroup layout="block" rendered="#{not empty user.registrations}">...</>
    <h:panelGroup layout="block" rendered="#{not empty user.registrations}">...</>
</ui:component>

rendered="#{not empty user.registrations}"しかし、前の時間を指定したくありません。代わりに、次のようなコンポーネントでラップしたいと思います。

<ui:component>
    <xxxx  rendered="#{not empty user.registrations}">
        <h:panelGroup layout="block">...</>
        <h:panelGroup layout="block">...</>
        <h:panelGroup layout="block">...</>
        <h:panelGroup layout="block">...</>
    </xxxx>
</ui:component>

ページはすでにスタイル設定されているため (そして、これが壊れやすい方法で行われるのではないかと心配していますxxxx)、独自の html 要素などを生成しない jsf-component ( ) が必要divです。そのような jsf-component は終了しますか?

4

3 に答える 3

3

Primefaces を使用している場合は、簡単な解決策があります。

使用してp:outputPanelください。

そうでない場合は、 も使用できますh:panelGroup。これには独自のフォーマットはありません。

于 2012-07-10T14:30:03.627 に答える
1

使用できます

<ui:fragment rendered="#{not empty user.registrations}">

http://javaserverfaces.java.net/nonav/docs/2.1/vdldocs/facelets/ui/fragment.html

于 2012-07-10T14:13:17.950 に答える
0

これを試して:

<c:if test="#{not empty user.registrations}">
    <h:panelGroup layout="block">...</>
    <h:panelGroup layout="block">...</>
    <h:panelGroup layout="block">...</>
    <h:panelGroup layout="block">...</>
</c:if>

<h:panelGroup>または、4を別のものでラップできます<h:panelGroup>

<h:panelGroup rendered="#{not empty user.registrations}">
    <h:panelGroup layout="block">...</>
    <h:panelGroup layout="block">...</>
    <h:panelGroup layout="block">...</>
    <h:panelGroup layout="block">...</>
</h:panelGroup>
于 2012-07-10T12:30:10.487 に答える