Michael, in Tiles 2 there is the TilesDecorationFilter:
http://tiles.apache.org/framework/apidocs/index.html

Ciao
Antonio

2008/1/22, Moynihan, Michael A <[EMAIL PROTECTED]>:
> Hi All,
>
> From my research into tiles it looks like the recommended way to use
> tiles with a Struts app is to create an action as follows
>
> <action path="/start" type="com.sample.action.SuccessAction">
>         <forward name="success" path="login.layout" />
> </action>
>
> This specifies the forward path to "login.layout" which will then be
> looked up in the tiles-def.xml In this file the definition can extend
> from a more generic definition and insert what properties it needs to
> set e.g. title, body.
>
> <definition name="nomenu.layout" path="/WEB-INF/jsp/noMenuLayout.jsp">
>         <put name="header" value="/WEB-INF/jsp/header.jsp" />
>         <put name="footer" value="/WEB-INF/jsp/footer.jsp" />
> </definition>
>
> <definition name="login.layout" extends="nomenu.layout">
>         <put name="title" value="Login" />
>         <put name="body" value="/WEB-INF/jsp/login.jsp" />
> </definition>
>
>
> This approach requires an additional tiles definition for each mapping
> in struts-config.xml, even though the only difference between the
> definitions will be the new body parameter As a result, in my experience
> the tiles-def.xml file can become quite large.
>
>
> I've come across an approach which would reduce the size of the
> tiles-def.xml and which I would like to get feedback from the open
> source community on.  It is based around the possibility of creating a
> generic tiles definition where the body parameter would be inserted
> dynamically at run time and therefore remove the need to specify a new
> definition for each mapping.
>
> This involves creating an action mapping as follows
>
> <action path="/start" type="com.sample.action.SuccessAction">
>         <forward name="success" path="nomenu.layout"
> className="com.sample.action.TilesActionForward">
>                 <set-property property="tilesParameter"
> value="body=/WEB-INF/jsp/login.jsp" />
>         </forward>
> </action>
>
> The mapping specifies the path as the tiles definition to look up in the
> tiles-def. However it also specifies an ActionForward class of
> TilesActionForward. TilesActionForward extends
> org.apache.struts.action.ForwardingActionForward and provides a setter
> for the tilesParameter property. This forward is placed on the request
> and is later used when the tiles definition is being implemented. In the
> tiles-def.xml file, the following definition is defined
>
> <definition
> controllerClass="com.sample.struts.tiles.CustomTilesController"
>             name="nomenu.layout" path="/WEB-INF/jsp/noMenuLayout.jsp">
>             <put name="header" value="/WEB-INF/jsp/header.jsp" />
>             <put name="footer" value="/WEB-INF/jsp/footer.jsp" />
>             <put name="body" value="" />
> </definition>
>
> Where a custom controller CustomTilesController which extends
> org.apache.struts.tiles.ControllerSupport. is used. This controller
> retrieves the forward from the request and dynamically inserts the
> tilesParameter into the definition. This leads to a extremely clean
> tiles-def.xml with only a few definitions defined.
>
>
> Overall this looks like a viable alternative. The action mappings and
> associated forward specifies the layout and the jsp pages to use for the
> tiles implementation. In the tiles-def.xml files, only a few mappings
> need to be specified with the CustomTilesController doing most of the
> work to dynamically inserted the required JSP page.
>
>
> I would like to get your opinion on both approaches. Is option 1 the
> recommended solution for implementing tiles in a struts based app? Is
> option 2 a viable solution for implementing tiles in a struts based app?
> Do the benefits of a cleaner tiles definition file override some extra
> configuration in struts-config? Can you see any flaws with this
> approach? Is there some way of implementing option two with the
> components already in Struts 1.2 or 1.3?
>
> Any feedback appreciated.
>
> Thanks,
> Michael
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to