You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by Deepesh Nandal <de...@eth.net> on 2005/09/14 12:58:42 UTC
Problem with Tiles
Hi There,
I am stuck at one place while working with tiles, please help.
I have my tiles-defs.xml as this:
<tiles-definitions>
<definition name=".mainLayout" path="/WEB-INF/tiles/layout.jsp">
<put name="title" value="Welcome to Net Model"/>
<put name="pageheading" value=""/>
<put name="header" value="/WEB-INF/tiles/header.jsp"/>
<put name="sider" value="/WEB-INF/tiles/sider.jsp"/>
<put name="body" value=""/>
<put name="footer" value="/WEB-INF/tiles/footer.jsp"/>
</definition>
<definition name="index.page" extends=".mainLayout">
<put name="pageheading" value="Login" />
<put name="body"
value="/WEB-INF/tiles/user-login.jsp" type="page"/>
</definition>
</tiles-definitions>
AND /WEB-INF/tiles/layout.jsp as this:
<%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<html:html>
<head> <title><tiles:getAsString name="title"/></title>
<META http-equiv=Content-Type content="text/html; charset=UTF-8">
<LINK href="style.css" type=text/css rel=stylesheet>
</head>
<body>
<tiles:insert attribute="header" /><br>
<tiles:insert attribute="sider" /><br>
<tiles:insert attribute="body" /><br>
<tiles:insert attribute="footer" />
</body>
</html:html>
Now, I need to print the variable 'pageheading'( defined in definition '.mainLayout') in "/WEB-INF/tiles/header.jsp" .
I cannot use <tiles:getAsString name="pageheading"/> inside "/WEB-INF/tiles/header.jsp" as "pageheading" is valid in
"/WEB-INF/tiles/layout.jsp" only . So how do I pass "pageheading" from "index.page" to header.jsp through .mainLayout ...
Please help .....
Many Thanks,
Deepesh Nandal.
Re: Problem with Tiles
Posted by Kishore Senji <ki...@gmail.com>.
There are 2 ways of doing it.
1) Get the "pageheading" in the layout.jsp and pass it on to the header.jsp
<tiles:insert attribute="header">
<tiles:put name="pageheading">
<tiles:getAsString name="pageheading" ignore="true"/>
</tiles:put>
</tiles:insert>
2) If you need the "pageheading" inside the heading.jsp, it's better to make
the "header" a separate definition and use the "pageheading" directly in the
header.jsp
<tiles-definitions>
<definition name=".mainLayout" path="/WEB-INF/tiles/layout.jsp">
<put name="title" value="Welcome to Net Model"/>
<put name="header" value=".header" type="definition"/>
<put name="sider" value="/WEB-INF/tiles/sider.jsp"/>
<put name="body" value=""/>
<put name="footer" value="/WEB-INF/tiles/footer.jsp"/>
</definition>
<definition name=".header" page="/WEB-INF/tiles/header.jsp">
<put name="pageheading" value=""/>
</definition>
<definition name=".login.header" extends=".header">
<put name="pageheading" value="Login"/>
</definition>
<definition name="index.page" extends=".mainLayout">
<put name="header" value=".login.header" type="definition"/>
<put name="body" value="/WEB-INF/tiles/user-login.jsp" type="page"/>
</definition>
</tiles-definitions>
On 9/14/05, Deepesh Nandal <de...@eth.net> wrote:
>
> Hi There,
> I am stuck at one place while working with tiles, please help.
> I have my tiles-defs.xml as this:
>
> <tiles-definitions>
> <definition name=".mainLayout" path="/WEB-INF/tiles/layout.jsp">
> <put name="title" value="Welcome to Net Model"/>
> <put name="pageheading" value=""/>
> <put name="header" value="/WEB-INF/tiles/header.jsp"/>
> <put name="sider" value="/WEB-INF/tiles/sider.jsp"/>
> <put name="body" value=""/>
> <put name="footer" value="/WEB-INF/tiles/footer.jsp"/>
> </definition>
> <definition name="index.page" extends=".mainLayout">
> <put name="pageheading" value="Login" />
> <put name="body"
> value="/WEB-INF/tiles/user-login.jsp" type="page"/>
> </definition>
> </tiles-definitions>
>
> AND /WEB-INF/tiles/layout.jsp as this:
> <%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>
> <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
> <html:html>
> <head> <title><tiles:getAsString name="title"/></title>
> <META http-equiv=Content-Type content="text/html; charset=UTF-8">
> <LINK href="style.css" type=text/css rel=stylesheet>
> </head>
> <body>
> <tiles:insert attribute="header" /><br>
> <tiles:insert attribute="sider" /><br>
> <tiles:insert attribute="body" /><br>
> <tiles:insert attribute="footer" />
>
> </body>
> </html:html>
>
> Now, I need to print the variable 'pageheading'( defined in definition
> '.mainLayout') in "/WEB-INF/tiles/header.jsp" .
> I cannot use <tiles:getAsString name="pageheading"/> inside
> "/WEB-INF/tiles/header.jsp" as "pageheading" is valid in
> "/WEB-INF/tiles/layout.jsp" only . So how do I pass "pageheading" from "
> index.page" to header.jsp through .mainLayout ...
>
> Please help .....
>
> Many Thanks,
> Deepesh Nandal.
>
>