jsf-forum.de jsf-forum.de jsf-forum.de
jsf-forum.de    
jsf-forum.de

Teil 3: Facelets Tag Reference

<ui:insert>

Attribut Verlangt? Beschreibung Beispiel
name Nein Der definierte Bereich kann mit dem name-Attribut benannt werden. content

Das insert-Tag wird verwendet um Templates zu definieren. Durch dieses Tag werden bestimmte Bereiche definiert, die von anderen Seiten überschrieben werden können. Eine Seite, die mindestens ein insert-Tag beinhaltet, gilt als Template und kann von anderen Seiten verwendet werden.

Beispielcode:
...
<body>
        <ui:insert name="content">
               Default Text for content
        </ui:insert>
</body>
...





<ui:define>

Attribut Verlangt? Beschreibung Beispiel
name Ja Das name-Attribut muss, mit dem im Template definiertem name-Attribut, des insert-Tags, übereinstimmen. content

Das define-Tag ist das Gegenstück zum insert-Tag. Ein im Template durch insert-Tag definierter Bereich, kann von einer Seite, durch das define-Tag überschrieben werden.

Das define-Tag kann nur innerhalb eines composition- oder decorate-Tags verwendet werden.

Beispielcode:
...
<body>
        <ui:composition template="template.xhtml">
               <ui:define name="content">
                       Hallo!!!
               </ui:define>
        </ui:composition>
</body>
...




<ui:composition>

Attribut Verlangt? Beschreibung Beispiel
template Nein Das template-Attribut spezifiziert den Pfad zum Template. /templates/template.xhtml

Wenn man auf einer Seite einen definierten Template verwenden möchte, kann man dies durch das composition-Tag angeben. Dabei muss man als template-Attribut den Pfad zum gewünschten Template angeben.

Das composition-Tag sorgt dafür, dass Texte außerhalb des Tags, für die Ausgabe nicht berücksichtigt werden.

Beispielcode:
...
<body>
        <ui:composition template="/templates/template.xhtml">
               Dieser Text wird nicht anzegeigt!
              
               <ui:define name="content">
                       Hallo!!!
               </ui:define>
              
        </ui:composition>
        Dieser Text wird nicht angezeigt!
</body>
...




<ui:decorate>

Attribut Verlangt? Beschreibung Beispiel
template Ja Das template-Attribut spezifiziert den Pfad zum Template. /templates/template.xhtml

Das decorate-Tag hat die gleiche Funktion wie das composition-Tag. Der einzige Unterschied ist, dass die Texte außerhalb des Tags, für die Ausgabe berücksichtigt werden.

Beispielcode:
...
<body>
        <ui:decorate template="/templates/template.xhtml">
               Dieser Text wird anzegeigt!
              
               <ui:define name="content">
                       Hallo!!!
               </ui:define>
              
        </ui:decorate>
       
        Dieser Text wird angezeigt!
</body>
...




<ui:component>

Attribut Verlangt? Beschreibung Beispiel
id Nein Eindeutige id des UIComponent. menu
binding Nein Anbindung des UIComponent an ein JavaBean-Attribut.

Dieses Tag fügt eine neue UIComponent-Instanz zum JSF-Komponentenbaum hinzu. Alle Komponenten innerhalb dieses Tags werden als Kinder an die UIComponent-Instanz angehängt. Texte außerhalb dieses Tags werden nicht angezeigt.

Beispielcode:
...
<body>
        Dieser Text wird nicht angezeigt!

        <ui:component id="menu">
                <h:inputText value=""/>
        </ui:component>

        Dieser Text wird nicht angezeigt!
</body>
...




<ui:fragment>

Attribut Verlangt? Beschreibung Beispiel
id Nein Eindeutige id des UIComponent. menu
binding Nein Anbindung des UIComponent an ein JavaBean-Attribut.

Das fragment-Tag hat die gleiche Funktion wie das component-Tag. Dieser Tag sorgt dafür, dass Texte außerhalb nicht ignoriert werden.

Beispielcode:
...
<body>
        Dieser Text wird angezeigt!

        <ui:fragment id="menu">
               <h:inputText value=""/>
        </ui:fragment>

        Dieser Text wird angezeigt!
</body>
...




<ui:include>

Attribut Verlangt? Beschreibung Beispiel
src Ja Als src-Attribut muss der Pfad zur Seite, die eingebettet werden soll, angegeben werden. /Menu/menu.xhtml

Das include-Tag in Facelets hat die gleiche Funktion wie <jsp:include> in JSPs. Dieses Tag wird verwendet um eine Seite einzubetten.

Beispielcode:
...
<body>
        <div id="menu">
               <ui:include src="/Menu/menu.xhtml"/>
        </div>
</body>
...




<ui:remove>

Das remove-Tag sorgt dafür, dass der Text innerhalb des Tags nicht angezeigt werden.

Beispielcode:
...
<body>
        <ui:remove>
                Dieser Text wird nicht angezeigt!
        </ui:remove>
</body>
...




<ui:debug>

Attribut Verlangt? Beschreibung Beispiel
hotkey Nein Das hotkey-Attribut spezifiziert eine Taste, die zur Anzeige von Informationen verwendet werden soll. Als default-Wert wird "D" verwendet. A

Dieses Tag kann für die Anzeige des View-Komponentenbaum und den sichtbaren Variablen verwendet werden. Diese Informationen werden in einem Popup-Fenster angezeigt, wenn man Ctrl+Shift+(hotkey) gleichzeitig drückt.

Die hotkey-Attribute kann spezifiziert werden. Als default-Wert wird "D" verwendet.

Beispielcode:
...
<body>
        <ui:debug hotkey="Z"/>
</body>
...




<ui:param>

Attribut Verlangt? Beschreibung Beispiel
name Ja Das name-Attribut spezifiziert die Variable für den referenzierten Objekt, die zum Template übergeben wird. mitem
value Ja Das value-Attribut bestimmt ein Attribut eines Java-Beans, das referenziert werden soll.

Das param-Tag kann dazu verwendet werden, bestimmte Daten als Referenz, auf einen Template zu übergeben.
Im unteren Beispiel kann man sehen, dass durch "mitem" das Menuitem-Objekt referenziert wird..

Beispielcode:
---------------Menu Template (menu.xhtml)-------------
...
<body>
        <h:inputText id="mi" value=""/>
</body>
...

---------------Home-Seite (home.xhtml)-------------
...
<body>
        <ui:include src="/WEB-INF/menu.xhtml">
               <ui:param name="mitem" value=""/>
        </ui:include>
</body>
...




<ui:repeat>

Attribut Verlangt? Beschreibung Beispiel
value Ja Die Liste, über die iteriert werden soll, wird in dem value-Attribut angegeben.
var Ja Das var-Attribut definiert den Schleifenzähler. Über ihn kann man im Rumpf auf das aktuelle Element zugreifen. message

Das repeat-Tag soll anstelle des c:forEach-Tags verwendet werden, um über Listen usw. zu iterieren.

Beispielcode:
...
<body>
        <ui:repeat value="" var="message">
               <h1></h1>
               <p></p>
        </ui:repeat>
</body>
...




Zurück zur Facelets-Übersichtsseite

jsf-forum.de