JSF - TILES - TOMCAT - cohabitation
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:
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:
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:
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:
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:
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:
1 2 3 4
| <div id="entete">
texte
<h1></h1>
</div> |
Alors que je devrais naturellement obtenir :
Code:
1 2 3
| <div id="entete">
<h1> texte</h1>
</div> |
qq'un a une piste ?!?
please ...