Hey Pauli -- 

It appears that I am in the same boat you were awhile back!  Given your
wildcard tiles definition layout.*.* , does the Struts 2 action mapping 

                <action name="layout.*.*">
                        <result>layout.{1}.{2}</result>
                </action>

not substitute correctly?

Peace,
Scott



Pauli Savolainen wrote:
> 
> Hi,
> 
> I am attempting to change an existing tiles definition during an execution
> of a Struts action. Example tiles definition:
> 
> <definition name="layout" template="/layout.jsp">
>   <put-attribute name="head" value="/head.jsp" />
>   <put-attribute name="body" value="/login.jsp" />
> </definition>
> 
> In the action I want to choose a correct body value based on some
> application specific rules. For example if I call:  /user/1, the User
> action's show method is executed and the body attribute's value would turn
> into /user/show.jsp. This would prevent me from writing definitions for
> each
> possible case.
> 
> Tile tutorial says I can get my hands on an attribute context (The class
> TilesAttributeContext does not exist in my tiles plugin build). In the
> action I do:
> 
> TilesAttributeContext attributeContext = container.startContext(request,
> response);
> attributeContext.setAttribute("body", "/user/show.jsp");
> container.render("layout", request, response);
> container.endContext(request, response);
> 
> I bet this is not the correct way to do it, because it seems that the
> tiles
> definition overrides the value I insert here. Even if I do this in an
> interceptor after the action result, the value is not changed.
> 
> I suppose there is no option in tiles to define definition with wildcards.
> At least I did not find this option. I could point my action results
> dynamically to a definition with wildcards.
> 
> <definition name="layout" template="/layout.jsp">
>   <put-attribute name="head" value="/head.jsp" />
>   <put-attribute name="body" value="/login.jsp" />
> </definition>
> 
> <definition name="layout.*.*" extends="layout">
>   <put-attribute name="body" value="/{1}/{2}.jsp" />
> </definition>
> 
> So my question is how would I achieve what am I try to do? Am I on the
> right
> tracks and just missing something, or is this even possible?
> 
> I am using 2.1.1-SNAPSHOT builds struts-core and struts tiles-plugin.
> 
> Thank you
> 
> Pauli
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Struts-2-Tiles-2-Runtime-composition-tp15737832p20447743.html
Sent from the tiles users mailing list archive at Nabble.com.

Reply via email to