Bonjour cher lecteur,

J'ai un petit soucis avec les facelets.

J'essaie d'écrire un template.xhtml :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets">
  <body>
    <ui:include src="unInclude" />
    <ui:insert name="unAutreDefine"/>
  </body>
</html>
ma page
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    template="template.xhtml">
</ui:composition>
Enfin l'include :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
		xmlns:ui="http://java.sun.com/jsf/facelets">
	<div>C'est moi l'include</div>
	<ui:define name="unAutreDefine">un autre define</ui:define>
</ui:composition>
Le rendu html est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
<body>
	<div>C'est moi l'include</div>
  </body>
Le ui:insert de unAutreDefine n'est pas pris en compte.
Si par contre le define est fait dans la page,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    template="template.xhtml">
  <ui:define name="unAutreDefine">  autre define de la page de test</ui:define>
</ui:composition>
il est bien pris en compte :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
<body>
	<div>C'est moi l'include</div>  autre define de la page de test
  </body>
J'arrive à la conclusion que les ui:define ne peuvent pas être écrit dans un fichier qui est utilisé par un ui:include.

Am I right ?

Ca limite l'usage des ui:include a du html strito sensus ... encaspsulé quand même dans du ui:composition pour le rendre xml.
Pourquoi cette limitation ?