Struts + Tiles
    
		    Buen dÃa
Quisiera saber si alguien me puede ayudar, hasta hace poco tenÃa mi
aplicación web hecha con struts, por ciertos requerimientos me he
visto obligado a incluir alguna forma de poder modificar la
presentación según clientes, etc; he decidido utilizar TILES, y he
estado buscando información sobre como funcionan. He modificado un par
de ellas, para lo cual he definido un BasicLayout, y después hago una
extensión de este layout para cada perfil en el archivo de definionces
tiles-definitions.xml:
<component-definitions>
<definition name="baseDef" path="/Basiclayout.jsp">
<put name="header" value="/header.jsp"/>
<put name="footer" value="/footer.jsp"/>
</definition>
<definition name="PerfilUno" extends="baseDef">
<put name="body" value="/PerfilUno.jsp"/>
</definition>
..........
<definition name="MenuPerfilUno" extends="PerfilUno">
<put name="body" value="/PerfilUno/Menu.jsp"/>
</definition>
...
</component-definitions>
y en el action que es invocado al llamar menu.do, Y asà en el
struts-config.xml ,
<action path="/menu" type="action.MenuPerifl">
<forward name="perfiluno" path="/MenuPerfilUno.do"/>
<forward name="perfildos" path="/MenuPerfilDos.do"/>
<forward name="perfiltres" path="/MenuPerfilTres.do"/>
</action>
en el web.xml tengo la configuracion standar con struts(1.2) pero sin
embargo cuando hago la llamada a menu.do, sea cual sea el perfil me
sale un error:
el recurdo MenuPerfilUno no existe.
Entonces mi pregunta es:
Tengo que añadir algo más al struts_config.xml? añadir algo más al
web.xml o la definiicón de las tiles es incorrecta? alguien me podrÃa
ayudar
Saluods
napsland
    Quisiera saber si alguien me puede ayudar, hasta hace poco tenÃa mi
aplicación web hecha con struts, por ciertos requerimientos me he
visto obligado a incluir alguna forma de poder modificar la
presentación según clientes, etc; he decidido utilizar TILES, y he
estado buscando información sobre como funcionan. He modificado un par
de ellas, para lo cual he definido un BasicLayout, y después hago una
extensión de este layout para cada perfil en el archivo de definionces
tiles-definitions.xml:
<component-definitions>
<definition name="baseDef" path="/Basiclayout.jsp">
<put name="header" value="/header.jsp"/>
<put name="footer" value="/footer.jsp"/>
</definition>
<definition name="PerfilUno" extends="baseDef">
<put name="body" value="/PerfilUno.jsp"/>
</definition>
..........
<definition name="MenuPerfilUno" extends="PerfilUno">
<put name="body" value="/PerfilUno/Menu.jsp"/>
</definition>
...
</component-definitions>
y en el action que es invocado al llamar menu.do, Y asà en el
struts-config.xml ,
<action path="/menu" type="action.MenuPerifl">
<forward name="perfiluno" path="/MenuPerfilUno.do"/>
<forward name="perfildos" path="/MenuPerfilDos.do"/>
<forward name="perfiltres" path="/MenuPerfilTres.do"/>
</action>
en el web.xml tengo la configuracion standar con struts(1.2) pero sin
embargo cuando hago la llamada a menu.do, sea cual sea el perfil me
sale un error:
el recurdo MenuPerfilUno no existe.
Entonces mi pregunta es:
Tengo que añadir algo más al struts_config.xml? añadir algo más al
web.xml o la definiicón de las tiles es incorrecta? alguien me podrÃa
ayudar
Saluods
napsland
		    Borra el .do al path ya que asi se llama en tu definition tag, ademas si no lo has hecho tienes que anhadir el plug-in para tiles en tu  config y definir el taglib en web.xml
	    
    
		    Hola larteaga, mi web.xml tiene esta configuracion
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>
org.apache.struts.action.ActionServlet
</servlet-class>
    
<init-param>
<param-name>definitions-config</param-name>
<param-value>/WEB-INF/tileDefinitions.xml</param-value>
</init-param>
<init-param>
<param-name>application</param-name>
<param-value>ApplicationResources</param-value>
</init-param>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>validate</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>log4j.properties</param-name>
<param-value>WEB-INF/classes/log4j.properties</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
en el struts config tengo lo del plugin y lo del controller,
pero cuando hago la invoación a
localhost:808/miapp/menu.do --> me tendrÃa k llevar a ejecutar el menu perfil1 es decir
localhost:808/miapp/MenuPerfilUno con lo cual con tiles deberÃa funcionar pero sinembargo me dice:
"El recurso requerido (/miappr/MenuPerfilUno) no está disponible."
me falta algo por configurar tengo que cambiar algo en el web.xml??
gracias por la ayuda
naspland
	    
    <servlet>
<servlet-name>action</servlet-name>
<servlet-class>
org.apache.struts.action.ActionServlet
</servlet-class>
<init-param>
<param-name>definitions-config</param-name>
<param-value>/WEB-INF/tileDefinitions.xml</param-value>
</init-param>
<init-param>
<param-name>application</param-name>
<param-value>ApplicationResources</param-value>
</init-param>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>validate</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>log4j.properties</param-name>
<param-value>WEB-INF/classes/log4j.properties</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
en el struts config tengo lo del plugin y lo del controller,
pero cuando hago la invoación a
localhost:808/miapp/menu.do --> me tendrÃa k llevar a ejecutar el menu perfil1 es decir
localhost:808/miapp/MenuPerfilUno con lo cual con tiles deberÃa funcionar pero sinembargo me dice:
"El recurso requerido (/miappr/MenuPerfilUno) no está disponible."
me falta algo por configurar tengo que cambiar algo en el web.xml??
gracias por la ayuda
naspland
		    lo siento se que soy cansino, esto he obtenido del archivo de log del tomcat :
329 [Thread-1] ERROR digester.Digester - Parse Error at line 111 column 81: Element type "controller" must be declared.
org.xml.sax.SAXParseException: Element type "controller" must be declared.
......
360 [Thread-1] ERROR digester.Digester - Parse Error at line 116 column 62: Element type "plug-in" must be declared.
org.xml.sax.SAXParseException: Element type "plug-in" must be declared.
......
375 [Thread-1] ERROR digester.Digester - Parse Error at line 122 column 17: The content of element type "struts-config" must match "(data-sources?,form-beans?,global-forwards?,action-mappings?)".
org.xml.sax.SAXParseException: The content of element type "struts-config" must match "(data-sources?,form-beans?,global-forwards?,action-mappings?)".
......
391 [Thread-1] INFO util.PropertyMessageResources - Initializing, config='ApplicationResources', returnNull=true
657 [Thread-1] INFO tiles.TilesPlugin - Tiles definition factory loaded for module ''.
gracias una vez más
napsland
    329 [Thread-1] ERROR digester.Digester - Parse Error at line 111 column 81: Element type "controller" must be declared.
org.xml.sax.SAXParseException: Element type "controller" must be declared.
......
360 [Thread-1] ERROR digester.Digester - Parse Error at line 116 column 62: Element type "plug-in" must be declared.
org.xml.sax.SAXParseException: Element type "plug-in" must be declared.
......
375 [Thread-1] ERROR digester.Digester - Parse Error at line 122 column 17: The content of element type "struts-config" must match "(data-sources?,form-beans?,global-forwards?,action-mappings?)".
org.xml.sax.SAXParseException: The content of element type "struts-config" must match "(data-sources?,form-beans?,global-forwards?,action-mappings?)".
......
391 [Thread-1] INFO util.PropertyMessageResources - Initializing, config='ApplicationResources', returnNull=true
657 [Thread-1] INFO tiles.TilesPlugin - Tiles definition factory loaded for module ''.
gracias una vez más
napsland
		    Primero empecemos con web.xml , tienes que adicionar esto:
<taglib>
<taglib-uri>/WEB-INF/tiles.tld</taglib-uri>
<taglib-location>/WEB-INF/tiles.tld</taglib-location>
</taglib>
De esta forma tu jsp podra reconocer las directivas:
<%@ taglib uri="/WEB-INF/tiles.tld" prefix="tiles" %>
<tiles:insert XXXXXXX >
    <taglib>
<taglib-uri>/WEB-INF/tiles.tld</taglib-uri>
<taglib-location>/WEB-INF/tiles.tld</taglib-location>
</taglib>
De esta forma tu jsp podra reconocer las directivas:
<%@ taglib uri="/WEB-INF/tiles.tld" prefix="tiles" %>
<tiles:insert XXXXXXX >
		    De los errores de Tomcat veo que el problema parece ser que no esta procesando bien las directivas controller y plug-in, debe haber un problema por ahi, de repente no has puesto bien la ruta para que maneje los tiles, checa eso
	    
    
		    Hola larteaga
me he estado mirando los mails y tengo un par de pregutnas, yo me bajé la última versión de struts, creo k la 1.2 y en ella viene un archivo struts-tiles.tld, por lo que yo en el web.xml tengo
-----
<taglib>
<taglib-uri>/WEB-INF/struts-tiles.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-tiles.tld</taglib-location>
</taglib>
<%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>
---
en lugar de loq ue tu me decÃas, asà mismo tengo en el web.xml
<servlet-name>action</servlet-name>
<servlet-class>
org.apache.struts.action.ActionServlet
</servlet-class>
debo hacer alguna mención en especial para para lo de las tiles en el servlet???, en el web.xml
Sobre el struts-config.xml, he estado mirando y el error aquel me dice que no acetpa lo del controller y asà como lo del plugs-in, puede ser por la versión del dtd y por usar struts1.2??
Gracias por tu ayuda
Napsland
    me he estado mirando los mails y tengo un par de pregutnas, yo me bajé la última versión de struts, creo k la 1.2 y en ella viene un archivo struts-tiles.tld, por lo que yo en el web.xml tengo
-----
<taglib>
<taglib-uri>/WEB-INF/struts-tiles.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-tiles.tld</taglib-location>
</taglib>
<%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>
---
en lugar de loq ue tu me decÃas, asà mismo tengo en el web.xml
<servlet-name>action</servlet-name>
<servlet-class>
org.apache.struts.action.ActionServlet
</servlet-class>
debo hacer alguna mención en especial para para lo de las tiles en el servlet???, en el web.xml
Sobre el struts-config.xml, he estado mirando y el error aquel me dice que no acetpa lo del controller y asà como lo del plugs-in, puede ser por la versión del dtd y por usar struts1.2??
Gracias por tu ayuda
Napsland
		    me he fijado en el log de tomcat y me indica:
657 [Thread-1] INFO tiles.TilesPlugin - Tiles definition factory loaded for module ''.
kiere decir que me pilla las tiles pero la definición no sabe de donde pillarla???
    657 [Thread-1] INFO tiles.TilesPlugin - Tiles definition factory loaded for module ''.
kiere decir que me pilla las tiles pero la definición no sabe de donde pillarla???
		    Hoola larteaga, muchas gracias por tu ayuda!!1 ya he podido solucinar lo de las tiles, me estaba falanado q yo estaba trabajando con strust 1.2 pero la validación la hacÃa con el dtd de struts1.0 !!! y lo de las páginas en blanco era k la definición de las tiles estaban apuntando a directorios equivocados.
Muchas gracias una vez más
Napsland
    Muchas gracias una vez más
Napsland
