Projets
Pages enfant
  • 1.9.2 Facelet

Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.

...

Fonctionnement

Remarque

Faire un shéma

Déclaration

On indique à JSF d'utiliser Facelets comme gestionnaire de vues. Pour cela dans /webapp/WEB-INF/jsp/faces-config.xml

Bloc de code

        <application>
		[...]
		<view-handler>com.sun.facelets.FaceletViewHandler</view-handler>
		[...]
	</application>

Exemple de template : template.xhtml

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é.

Exemple de page utilisant le template : ma_page.xhtml

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

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>

...