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:
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>
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
<?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>
Mon fichier d'entré est celui ci :
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" />
il appel donc le layout 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>
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
 
<%@ 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>
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.

j'obtient le résultat suivant sir le dernier éléments:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
<div id="entete">
  texte
  <h1></h1>
</div>
Alors que je devrais naturellement obtenir :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
<div id="entete">
  <h1>  texte</h1>
</div>
qq'un a une piste ?!?
please ...