![]() |
![]() |
![]() |
![]() |
|
Teil 3: Facelets Tag Reference
<ui:insert>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||