bonjours,
j'ai un petit soucis de cohabtation entre ces troois système, et là franchement je vois plus quoi faire...
mon but : déféinir un template (layout) de base, et étendre chacune de mes page des ce template en changeant 1 et un seul parametre représentant le contenu !
pour ce faire voici les quelques fichiers utilisé :
web.xml:
ce dernier fait référence à mon face-config.xml (pour le coup il est vide !!!), et mon tiles-def.xml qui définie mes tiles :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 <?xml version="1.0" encoding="ISO-8859-1"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"> <display-name>appl</display-name> <description>appl</description> <!-- Faces Config --> <context-param> <param-name>javax.faces.CONFIG_FILES</param-name> <param-value> /WEB-INF/faces-config.xml </param-value> </context-param> <!-- Faces Servlet --> <servlet> <servlet-name>Faces Servlet</servlet-name> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <!-- Faces Servlet Mapping --> <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>*.jsf</url-pattern> </servlet-mapping> <!-- Tiles Servlet --> <servlet> <servlet-name>tiles</servlet-name> <servlet-class> org.apache.struts.tiles.TilesServlet </servlet-class> <init-param> <param-name>definitions-config</param-name> <param-value>/WEB-INF/tiles-defs.xml</param-value> </init-param> <init-param> <param-name>definitions-parser-validate</param-name> <param-value>true</param-value> </init-param> <load-on-startup>2</load-on-startup> <message-resources parameter="messages.MessageBundle" /> </servlet> <welcome-file-list> <welcome-file>index.jsf</welcome-file> </welcome-file-list> </web-app>
Mon fichier d'entré est celui ci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 <?xml version="1.0" encoding="ISO-8859-1" ?> <!DOCTYPE tiles-definitions PUBLIC "-//Apache Software Foundation//DTD Tiles Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/tiles-config_1_1.dtd"> <tiles-definitions> <!-- MAIN LAYOUT --> <definition name=".mainLayout" path="../layout/layout.jsp"> <put name="title" value="appl" /> <put name="cheminDeFer" value="../layout/cheminDeFer.jsp" /> <put name="entete" value="entete.jsp" /> <put name="corps" value="../layout/contenu.jsp" /> <put name="bouton" value="../layout/bouton.jsp" /> <put name="erreur" value="../layout/erreur.jsp" /> </definition> <!-- ACCUEIL --> <definition name=".acc_acc" extends=".mainLayout"> <put name="title" value="appl- Acceuil" /> </definition> <definition name=".acc_auth" extends=".mainLayout"> <put name="title" value="appl- Authentifiaction" /> </definition> <definition name=".acc_iden" extends=".mainLayout"> <put name="title" value="appl- Identifiaction" /> </definition> <definition name=".acc_port" extends=".mainLayout"> <put name="title" value="appl- Portail" /> <put name="corps" type="page" value="/sv3_acc/acc_port/acc_port.jsp" /> </definition> </tiles-definitions>il appel donc le layout suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <%@ taglib prefix="t" uri="http://jakarta.apache.org/struts/tags-tiles"%> <t:insert definition=".acc_port" flush="false" ignore="false" />
et par extension le contenu suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <%@ taglib prefix="t" uri="http://jakarta.apache.org/struts/tags-tiles"%> <%@ taglib prefix="f" uri="http://java.sun.com/jsf/core"%> <%@ taglib prefix="h" uri="http://java.sun.com/jsf/html"%> <html> <head> <title><t:getAsString name="title" /></title> <link rel="stylesheet" type="text/css" href="../css/stylesheet.css" /> <link rel="stylesheet" type="text/css" href="css/stylesheet.css" /> </head> <body> <f:view> <h:form id="sesame"> <div id="container"> <f:loadBundle basename="messages.MessageBundle" var="bundle"/> <div id="cheminDeFer"> <f:facet name="facet_CF"> <t:insert attribute="cheminDeFer" flush="false" ignore="false" /> </f:facet> </div> <div id="entete"> <f:facet name="facet_entete"> <t:insert attribute="entete" flush="false" ignore="false" /> </f:facet> </div> <div id="corps"> <f:facet name="facet_corps"> <t:insert attribute="corps" flush="false" ignore="false" /> </f:facet> </div> </div> </h:form> </f:view> </body> </html>
mon problème est que cette structure fonctinnait parfaitement sous weblogic, mais il semble que sous Tomcat (6.0) les balise <h:Xxx> ne soient pas interpete dans les fichiers de contenu.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <%@ taglib prefix="h" uri="http://java.sun.com/jsf/html"%> <%@ taglib prefix="f" uri="http://java.sun.com/jsf/core"%> <f:subview id="acc_port"> <div class="cadre"> <h1><h:outputText value="#{bundle.acc_port_titre}" /></h1> </div> </f:subview>
j'obtient le résultat suivant sir le dernier éléments:
Alors que je devrais naturellement obtenir :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4<div id="entete"> texte <h1></h1> </div>
qq'un a une piste ?!?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3<div id="entete"> <h1> texte</h1> </div>
please ...
Partager