Estoy convirtiendo una aplicación web Tiles 1 existente a la arquitectura Tiles 2. Tengo problemas para pasar los valores de la página JSP a los atributos de los mosaicos.¿Cómo pasar valores de JSP al atributo de mosaicos?
Aquí está mi archivo de definición de azulejos (azulejos-definition.xml)
<tiles-definitions>
<definition name="cda.layout" template="/jsp/layouts/layout.jsp">
<put-attribute name="pageTitle" value="StoryTitle" type="string"/>
<put-attribute name="pageHeader" value="StoryHeader" type="string"/>
<put-attribute name="resources" value="" type="string"/>
</definition>
</tiles-definitions>
El layout.jsp parece:
<html>
<head>
<title><tiles:insertAttribute name="pageTitle" flush="true"/></title>
</head>
<body>
...
...
<div class="content">
<h1><tiles:insertAttribute name="pageHeader" flush="true"/></h1>
</div>
...
...
</body>
</html>
Tengo una página de historia que usa el diseño y la necesidad de pasar valores a los atributos de la plantilla.
<%
// create a business object and populate
String mytitle= story.getTitle();
String myheader = story.getHeader();
%>
<tiles:insertTemplate template="../layouts/layout.jsp" flush="false" >
<tiles:putAttribute name="pageTitle" value="${mytitle}"/>
<tiles:putAttribute name="pageHeader"value="${myheader}"/>
</tiles:insertTemplate>
En el story.jsp, puedo System.out.print() los valores para myTitle, myHeader y que están mostrando correcta. Sin embargo, estos valores NO se transmiten a los atributos del mosaico.
¿Alguna idea de cómo solucionar esto?
JB, esa solución funcionó. Muchas gracias. –
Gracias por su respuesta, estoy usando esta solución pero el problema es que el resultado sería $ {story.title} Título de la historia. Como verá, $ {story.title} se considerará como una variable y valor. Aunque, solo estoy pasando de Java no JSP. –