2010-12-16 14 views
15

estoy usando Azulejos y me gustaría un atributo definido para una página para ser legible en el interior de una de las subpáginas incluidas como sigue:propagar una Azulejos atribuyen por el incluya la cadena

tiles-definitions.xml:

<definition name="page" template="/WEB-INF/tiles/layout/page.jsp"> 
    <put-attribute name="header" value="/WEB-INF/jsp/_include/header.jsp"/> 
    <put-attribute name="footer" value="/WEB-INF/jsp/_include/footer.jsp"/> 
</definition> 

<definition name="tutorial" extends="page"> 
    <put-attribute name="title" value="Tutorial"/> 
    <put-attribute name="body" value="/WEB-INF/jsp/tutorial.jsp"/> 
</definition> 

el page.jsp representa una sencilla estructura de la página:

<html> 
    <head><title><tiles:getAsString name="title"/></title></head> 
    <body> 
     <tiles:insertAttribute name="header"/> 
     <tiles:insertAttribute name="body"/> 
     <tiles:insertAttribute name="footer"/> 
    </body> 
</html> 

estoy intentando leer el título también dentro de la subpágina "cabecera" pero me da la followin g de error:

org.apache.tiles.template.NoSuchAttributeException: Attribute 'title' not found.

Aquí es cómo estoy tratando de acceder al atributo en header.jsp:

<tiles:getAsString name="title"/> 

Respuesta

21

para propagar el atributo title a los moldes interiores es necesario agregar cascade="true" atributo a la title 's <put-attribute> etiqueta, así:

<definition name="tutorial" extends="page"> 
    <put-attribute name="title" cascade="true" value="Tutorial"/> 
    <put-attribute name="body" value="/WEB-INF/jsp/tutorial.jsp"/> 
</definition> 
+1

Gracias! El mismo problema aqui. Esto lo resolvió. – Alberto

+1

Me funcionó también. Ha pasado un tiempo - stack-o-frankie, ¿puedes aceptar esta respuesta? –

+1

Además, si usa '' en lugar de '', puede usar el atributo en EL con '$ {attribute}' – Adam

5

Cuide para actualizar el archivo de definición de los azulejos a 2,1 min, como en cascada está disponible desde la versión 2.1.

<!DOCTYPE tiles-definitions PUBLIC "-//Apache Software Foundation//DTD Tiles Configuration 2.1//EN" "http://tiles.apache.org/dtds/tiles-config_2_1.dtd"> 

Cuestiones relacionadas