Ich verwende Tiles 2 in meiner Webanwendung, und die Grundeinstellung, die ich in meiner tiles.xml-Datei habe, ist folgende:
<tiles-definitions>
<definition name="mainLayout" template="/jsp/layout.jsp">
<put-attribute name="header" value=""/>
<put-attribute name="menu" value="/jsp/defaultMenu.jsp" />
<put-attribute name="content" value="" />
<put-attribute name="footer" value="/jsp/footer.jsp" />
</definition>
<definition name="HomePage" extends="mainLayout">
<put-attribute name="content" type="template" value="/jsp/home.jsp"/>
<put-attribute name="homeClass" value="active" />
</definition>
... rest omitted for brevity.
In der Datei layout.jsp, die das Layout definiert, füge ich das Menü an der entsprechenden Stelle ein.
<tiles:insertAttribute name="menu" />
Ich wollte also in meiner Menüvorlage das in tiles.xml definierte Attribut homeClass verwenden.
<tiles:insertAttribute name='homeClass'/>
aber ich erhalte eine Fehlermeldung, dass das Attribut homeClass nicht definiert ist. Wenn ich ein insertAttribute in meinem layout.jsp mache, wird der Wert richtig definiert, aber ich brauche es in der Menü-JSP definiert, von meinem Layout enthalten.
Meine Frage ist also: Wie kann ich die homeClass
Attribut nicht nur an meine Layoutvorlage, sondern auch an die Menüvorlage, die in der Layoutvorlage enthalten ist, korrekt übergeben?