Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] Tiles diferentes niveles

Estas en el tema de Tiles diferentes niveles en el foro de Java en Foros del Web. Hola, He usado el complemento de Struts2 Tiles en una parte de la aplicación y como se puede ver en la imagen con algo fácil ...
  #1 (permalink)  
Antiguo 09/11/2013, 05:29
Avatar de fpalomar  
Fecha de Ingreso: noviembre-2003
Mensajes: 123
Antigüedad: 20 años, 5 meses
Puntos: 3
Tiles diferentes niveles

Hola,

He usado el complemento de Struts2 Tiles en una parte de la aplicación y como se puede ver en la imagen con algo fácil se utilizarlo.

En el archivo tiles.xml tengo:

Código:
?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE tiles-definitions PUBLIC
"-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN"
"http://tiles.apache.org/dtds/tiles-config_2_0.dtd">

<tiles-definitions>
	
	<!-- definicions per layouts -->	
	<definition name="baseLayout" template="/estructura/baseLayout.jsp">
		<put-attribute name="opciones" value="inicio"/>
		<put-attribute name="usuarios" value="/estructura/usuario.jsp"/>
	</definition>
	
	<definition name="contactoLayout" template="/estructura/contactoLayout.jsp">
		<put-attribute name="formulario" value="/estructura/formulario.jsp"/>
	</definition>
	
	<definition name="finContactoLayout" template="/estructura/contactoLayout.jsp">
		<put-attribute name="formulario" value="/estructura/finFormulario.jsp"/>
	</definition>

	<!-- definicions per actions de opciones del menu Principal-->
	<definition name="inicio" extends="baseLayout">
		<put-attribute name="opciones"   value="/estructura/inicio.jsp"/>
	</definition>
	
	<definition name="quienes" extends="baseLayout">
		<put-attribute name="opciones"  value="/estructura/quienes.jsp"/>
	</definition>
	
	<definition name="servicios" extends="baseLayout">
		<put-attribute name="opciones"  value="/estructura/servicios.jsp"/>
	</definition>
	
	<definition name="donde" extends="baseLayout">
		<put-attribute name="opciones"  value="/estructura/donde.jsp"/>
	</definition>
	
	<definition name="usuario" extends="baseLayout">
		<put-attribute name="usuarios"  value="/estructura/usuario.jsp"/>
	</definition>
	
	<definition name="contacto" extends="baseLayout">
		<put-attribute name="opciones"  value="contactoLayout"/>
	</definition>
	
	<definition name="finContacto" extends="baseLayout">
		<put-attribute name="opciones"  value="finContactoLayout"/>
	</definition>
	
	<!-- definicions per actions de opciones del menu Usuario-->
	
	<definition name="usuarioLayout" template="/estructura/baseLayout.jsp">
		<put-attribute name="opciones" value="menuLayout"/>
		<put-attribute name="usuarios" value="/estructura/usuarioLogin.jsp"/>
	</definition> 
		
	
	<definition name="menuLayout" template="/estructura/usuarioLayout.jsp">
		<put-attribute name="data"  value=""/> 
	</definition>
	
</tiles-definitions>
Pero el problema que no logro resolver, es cuando quiero poner el menu del usuario con opciones. El menu de usuario se carga en un nivel, en el que están botones a la izquierda y derecha como en la imagen.

No se como hacer que al utilizar cada botón se carge la pantalla, utilizando sólo tiles, tampoco se si eso es posible hacerlo.

Saludos y gracias
  #2 (permalink)  
Antiguo 11/11/2013, 09:42
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Tiles diferentes niveles

<definition name="usuarioLayout" template="/estructura/baseLayout.jsp">
<put-attribute name="opciones" value="menuLayout"/>
<put-attribute name="usuarios" value="/estructura/usuarioLogin.jsp"/>
</definition>

Significa que...

En tu jsp llamada baseLayout vas a tener un sitio donde se ubique la página asociada al atributo opciones y otro donde se ubique la página asociada al atributo usuarios. Esta página puede ser un nuevo layout, o directamente una jsp de la aplicación.

Adjunto un par de ejemplos de como integrar tiles con struts 2

http://www.dzone.com/tutorials/java/...example-1.html
http://www.tutorialspoint.com/struts_2/struts_tiles.htm
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}
  #3 (permalink)  
Antiguo 12/11/2013, 02:54
Avatar de fpalomar  
Fecha de Ingreso: noviembre-2003
Mensajes: 123
Antigüedad: 20 años, 5 meses
Puntos: 3
Busqueda Respuesta: Tiles diferentes niveles

Hola,

Afortunadamente y después de varias pruebas esa parte la entiendo bien. Es la que denomino parte fácil y corresponde a la primera imagen.

Mi problema es cuando el usuario se logea. Se carga todo bien, pero no se como generar las opciones del menuLayout, como por ejemplo perfil:
Código:
<definition name="perfil" extends="menuLayout">
     <put-attribute name="data"  value="/estructura/perfil.jsp"/>
</definition>
Pero como se extiende desde manuLayout no forma la web coorectamente y hace
un "churro" como se puede ver aquí.

Tampoco se si es posible hacer lo que pretendo.

Saludos
  #4 (permalink)  
Antiguo 12/11/2013, 03:12
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Tiles diferentes niveles

La página /estructura/usuarioLayout.jsp está correcta? has hecho una validación w3c del código fuente de esas páginas? Igual te sale mal colocado por eso.

Por otra parte, hay atributos que se pueden sobreescribir, aunque en el layout de partida tengan ya un valor

<definition name="perfil" extends="menuLayout">
<put-attribute name="data" value="/estructura/perfil.jsp"/>
<put-attribute name="opciones" value="quienes"/>
</definition>
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}
  #5 (permalink)  
Antiguo 13/11/2013, 04:26
Avatar de fpalomar  
Fecha de Ingreso: noviembre-2003
Mensajes: 123
Antigüedad: 20 años, 5 meses
Puntos: 3
Respuesta: Tiles diferentes niveles

Hola,

Vaya pues lo del W3C no lo recordaba, pero lo veo porque si lo llamo directo funciona, aunque no se si Eclipse tiene esta opción.

Lo de sobreescribir atributos se hacerlo, pero una vez has llegado a un nivel que creo que son dos me parece que no se puede. Voy a probar con una cosa que le llaman definiciones anonimas a ver que sale.

Saludos

Etiquetas: j2ee, struts2
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:02.