Lo que se tiene que hacer es agregar el archivo struts.jar de la distribución de los 1.1 de Struts a la ruta de clases. Incluir struts.jar no significa que Struts es necesario para utilizar JSF con Tiles. Es que el paquete se distribuye dentro del archivo struts.jar. No hay otras funcionalidades de la infraestructura de Struts que se trataran.
Algunos consejos útiles.
1.- Aquí está un fragmento del archivo web.xml que habilita Tiles:
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>TilesServet</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>
<load-on-startup>2</load-on-startup>
</servlet>
Pon atención al Tag load-on-startup tag. El servlet Tiles debe ser leído después del server Faces. ¡Esto es importante!
2.- tiles-defs-xml es el nombre del archivo estándar para el archivo de definiciones de Tiles. Sin embargo puedes nombrarlo de la manera que desees y usar mas de uno. Sepáralos por coma para definir tales archivos en el parametro definitions-config en el archivo web.xml.
3.- Establece flush="false" para las etiquetas tiles:insert si los usas dentro de un elemento f:view (entre las etiquetas de inicio y fin de f:view).
4.- Usa la etiqueta f:subview si esta usando tiles dentro de un elemento f:facet, por ejemplo:
<f:facet name="header">
<f:subview id="header">
<tiles:insert definition="page.header" flush="false"/>
</f:subview>
</f:facet>
5.- Nunca incluya un elemento f:view dentro de otro elemento f:view.
6.- No puedes hacer un forward directamente en los Tiles, como en Struts. El archivo faces-config debe referenciar a las paginas usando Tiles como vistas.
No hay comentarios:
Publicar un comentario