Sto convertendo una webapp di piastrelle 1 esistente nell'architettura Tiles 2. Sto riscontrando problemi nel passaggio dei valori dalla pagina JSP agli attributi tile.Come passare valori da JSP a tile attributo?
Ecco il mio file di definizione piastrelle (piastrelle-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>
Il layout.jsp assomiglia:
<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>
Ho una pagina storia che utilizza il layout e la necessità di passare i valori agli attributi del modello.
<%
// 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>
Nel story.jsp, posso System.out.print() i valori per myTitle myHeader e sono mostrando corretta. Ma questi valori NON sono passati agli attributi della tessera.
Qualche idea su come risolvere questo problema?
JB, la soluzione ha funzionato. Molte grazie. –
Grazie per la tua risposta, sto usando questa soluzione ma il problema è che l'output sarebbe $ {story.title} Titolo della storia. Come vedi $ {story.title} sarà considerato come una variabile e un valore. Anche se, sto solo passando da Java non JSP. –