...
| Bloc de code |
|---|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:t="http://myfaces.apache.org/tomahawk">
<head>
<title><ui:insert name="titre" /></title>
</head>
<body>
<p>
<ui:insert name="contenu" />
</p>
</body>
</html>
|
Les balises ui:insert indiquent les endroits où le code spécifique pourra être injecté.
...
| Bloc de code |
|---|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html">
<ui:composition template="/template.xhtml">
<ui:define name="titre">Titre de ma page</ui:define>
<ui:define name="contenu">
Texte, formulaires etc.
</ui:define>
</ui:composition>
</html>
|
La balise ui:composition indique le template qui va être utilisé.
Les balises ui:define permettent de définir les contenus spécifiques pour l'élément correspondant au name.
Résultat obtenu :
| Bloc de code |
|---|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:t="http://myfaces.apache.org/tomahawk">
<head>
<title>Titre de ma page</title>
</head>
<body>
<p>
Texte, formulaires etc.
</p>
</body>
</html>
|
...
| Bloc de code |
|---|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html">
<ui:composition template="/template.xhtml">
<ui:define name="titre">Titre de ma page en dur</ui:define>
<ui:define name="contenu">
<div class="style-header"><ui:insert name="header" /></div>
<div class="style-texte"><ui:insert name="texte" /></div>
<div class="style-footer"><ui:insert name="footer" /></div>
</ui:define>
</ui:composition>
</html>
|
...
| Bloc de code |
|---|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html">
<ui:composition template="/ma_page_template.xhtml">
<ui:define name="header">
Mon header
</ui:define>
<ui:define name="texte">
Texte, formulaires etc.
</ui:define>
<ui:define name="footer">
Mon footer
</ui:define>
</ui:composition>
</html>
|
...
| Bloc de code |
|---|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:t="http://myfaces.apache.org/tomahawk">
<head>
<title>Titre de ma page en dur</title>
</head>
<body>
<p>
<div class="style-header">Mon header</div>
<div class="style-texte">Texte, formulaires etc.</div>
<div class="style-footer">Mon footer</div>
</p>
</body>
</html>
|
Essayer de ne pas déclarer <ui:define name="titre">Titre de ma page</ui:define> dans ma_page_template.xhtml et de l'ajouter dans mon_autre_page.xhtml et voir si ça fonctionne.
...
| Bloc de code |
|---|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html"> <ui:composition> <h:outputText value="#{titre}"/> : <h:inputText value="#{valeur}"/> </ui:composition> </html> |
...
| Bloc de code |
|---|
<?xml version="1.0"?> <!DOCTYPE facelet-taglib PUBLIC "-//Sun Microsystems, Inc.//DTD Facelet Taglib 1.0//EN" "facelet-taglib_1_0.dtd"> <facelet-taglib> <namespace>http://commons.esup-portail.org</namespace> <tag> <tag-name>monInputText</tag-name> <source>/monInputText.xhtml</source> </tag> </facelet-taglib> |
Déclaration
On déclarera le taglib dans un élément <context-param> de /webapp/WEB-INF/web.xml
...
| Bloc de code |
|---|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:e="http://commons.esup-portail.org">
<head>
<title>Ma page</title>
</head>
<body>
<f:view>
<e:monInputText titre="Nom du champs" valeur="#{Controller.field}"/>
</f:view>
</body>
</html> |