![]() |
![]() |
![]() |
![]() |
|
Teil 2: Verwendung von Facelets
Ein einfaches Beispiel
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core"> <head> <title>Facelets-Test</title> </head> <body> Hallo # {person.name} </body> </html> Wie man sieht, ist es normales HTML. Man kann überall am Code durch EL-Ausdrücke auf die Attribute der JavaBeans zugreifen. Templating Beispiel Facelets bietet sehr mächtige Funktionen im Bereich Templating. Wenn man Facelets effektiv verwenden möchte, sollte man diese Funktionen nutzen. Definition eines Templates Alle Seiten, die mindestens ein insert-Tag beinhalten, gelten als Template und können von anderen Seiten wieder verwendet werden. Durch das insert-Tag wird im Template ein Bereich definiert, der von anderen Seiten überschrieben werden kann. Wenn eine Seite einen im Template definierten Bereich nicht überschreibt, dann wird der default-Text verwendet. Man kann in einem Template mehrere Bereiche definieren. Im unteren Beispiel wird ein Bereich definiert, der "content" benannt wird.
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:ui="http://java.sun.com/jsf/facelets"> <head> <title>Facelets-Test</title> </head> <body> <div> <h1>Facelets-Template<h1> </div> <ui:insert name="content"> Default Text for content </ui:insert> </body> </html> Verwendung eines Templates auf einer Seite Auf der unteren Seite verwenden wir das oben definierte Template und überschreiben den Content-Bereich mit dem gewünschten Text. Wenn man das Template verwendet, aber den Content-Bereich nicht überschreibt, wird der im Template definierte default-Text angezeigt.
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:ui='http://java.sun.com/jsf/facelets"> <body> <ui:composition template="template.xhtml"> <ui:define name="content"> <h:form> <h:outputText value="Halloooo!!!" /> <h:commandButton value="OK" /> </h:form> </ui:define> </ui:composition> </body> </html> Die Verwendung des jsfc-Attributs Mit dem jsfc-Attribut kann man auf JSF-spezifische Tags verzichten. Man verwendet HTML-Tags wie gewohnt und definiert das jsfc-Attribut mit der gewünschten JSF-Komponente. Hier ist ein einfaches Beispiel, wie man den oberen Code mit jsfc-Attribut umsetzen würde: <html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:ui='http://java.sun.com/jsf/facelets"> <body> <ui:composition template="template.xhtml"> <ui:define name="content"> <form id="myform" jsfc="h:form"> <input type="text" jsfc="h:inputText" value="Hallo!!!"/> <input type="submit" jsfc="h:commandButton" value="OK"/> </form> </ui:define> </ui:composition> </body> </html> Das jsfc-Attribut wird in der Praxis eher selten verwendet. Zurück zur Facelets-Übersichtsseite |
|||||||||||