[prev in list] [next in list] [prev in thread] [next in thread] 

List:       struts-user
Subject:    Re: nested tiles:insert tags
From:       Mark Lowe <mark.lowe () boxstuff ! com>
Date:       2004-05-29 17:27:01
Message-ID: 655580A7-B195-11D8-9A80-0003937DAEC0 () boxstuff ! com
[Download RAW message or body]


<tiles:useAttribute id="title" name="pageTitle" scope="request" />

<c:out value="${title}" />

or

<jsp:getProperty name="title" />

or

<bean:write name="title" />

This will work in inserted tiles as the variable is scoped to the 
request rather than page.

On 28 May 2004, at 13:03, Colm Garvey wrote:

> Has anyone been able to nest tiles such that <tiles:getAsString,,>
> placeholders in the topmost frame can be populated by another tile 2 
> levels
> down?
>
> For example, I have a base.jsp tile (which is used by all my pages) 
> which is
> responsible for color, global scripts etc..
> I would like to set up a generic search.jsp tile for use in search 
> pages as
> well as a generic list.jsp tile which could contain my datagrid 
> controls.
>
> So the page structure looks like this
>
>  widgetSearchResults.jsp inserts listTile.jsp which in turn inserts
> baseTile.jsp
>
> baseTile.jsp sets up most of the page structure, including the page 
> title,
> like so: <tiles:getAsString name="pageTitle"/>
> but I want to declare the pageTitle on my widgetsearchresults.jsp page.
>
> I've tried nesting <tiles:getAsString> tags within <tiles:put> tags 
> but I'm
> getting an error thrown back at me. (see sample code)
>
> Here's some sample code:
>
> baseTile.jsp
>
> ---------------------------------------- START
>
> <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"
> %><%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"
> %><%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"
> %><%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles"
> %><%@ page contentType="text/html; charset=utf-8" language="java"
> import="java.sql.*" errorPage="/error.jsp" %>
> <html:html locale="true">
> <head>
> <html:base />
> <title><tiles:getAsString name="title"/></title>
> <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
> <link href="/eRespond/media/css/base.css" rel="stylesheet" 
> type="text/css">
> <!-- Page Specific Styles-->
> <tiles:getAsString name="css" ignore="true"/
> <!-- Page Specific Javascript -->
> <script language="javascript" src="/eRespond/media/js/common.js"
> type="text/javascript"></script>
> <tiles:getAsString name="javascript" ignore="true"/>
> </head>
> <body <tiles:getAsString name="bodyParams" ignore="true"/> >
> <tiles:get name="toolbar" ignore="true"/>
> <tiles:getAsString name="bodyContent" ignore="true"/>
> <!-- Miscellaneous footer content -->
> <tiles:getAsString name="footer" ignore="true"/>
> <tiles:insert page="/tiles/commonFooter.jsp" />
> </body>
> </html:html>
> ---------------------------------------- END
>
>
>
> listTile.jsp
> ---------------------------------------- START
> <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"
> %><%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"
> %><%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"
> %><%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles"
> %><%@ page contentType="text/html; charset=UTF-8" language="java"
> import="java.sql.*" errorPage="/error.jsp" %>
> <tiles:insert page="/tiles/baseTile.jsp">
>  <tiles:put name="title" type="String">
>   <tiles:getAsString name="TITLE"/><!-- THIS DOESN'T WORK BUT LEAVING 
> IT OUT
> DOESN'T WORK EITHER -->
> </tiles:put>
>
> <tiles:put name="css">
> <LINK href="/eRespond/media/css/listTile.css" type="text/css"
> rel=StyleSheet>
>     <tiles:getAsString name="CSS"/>
> </tiles:put>
> <tiles:put name="javascript">
> <script language="javascript" src="/eRespond/media/js/listTile.js"
> type="text/javascript"></script>
>     <tiles:getAsString name="JAVASCRIPT"/>
> </tiles:put>
>
> <tiles:put name="bodyParams"> <tiles:getAsString 
> name="BODYPARAMS"/><!--
> </tiles:put>
>
> <tiles:put name="bodyContent">
>
>
> HTML goes here for the setup of the list control
>
>  <tiles:getAsString name="PAGECONTENT"/>
>
> more HTML goes here
>
> </tiles:put>
> </tiles:insert>
> ---------------------------------------- END
>
>
>
> widgetSearchResults.jsp
> ---------------------------------------- START
> <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"
> %><%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"
> %><%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"
> %><%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles"
> %><%@ page contentType="text/html; charset=UTF-8" language="java"
> import="java.sql.*" errorPage="/error.jsp" %>
> <tiles:insert page="/tiles/listTile.jsp">
> <tiles:put name="TITLE" type="String">
>     <bean:message key="events.title.eventsearchresults"/>
> </tiles:put>
>
>
> <tiles:put name="CSS">
>         page specific CSS goes here
> </tiles:put>
> <tiles:put name="JAVASCRIPT">
>         Page Specific Javascript goes here
> </tiles:put>
>
> <tiles:put name="bodyParams"> onLoad="doOnLoads();" 
> onResize="setHeights();"
> unselectable="false" </tiles:put>
>
> <tiles:put name="PAGECONTENT">
>     HTML and my logic:iterate tags go here to display the resultset
> </tiles:put>
> </tiles:insert>
> ---------------------------------------- END
>
> Anyone able to tell me how I can make the above work?
>
> Thanks for taking an interest,
>
> Colm
>


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic