I think the tiles definition attributes should be exposed through the
tiles-plugin XML file.  My Wizard action is setting the nextPage so this
would eliminate the need to write a ViewPreparer to set the jsp in the tiles
definition.  I am now meddling around in the Preparer trying to construct
the URL that contains the page.  For this Preparer to be flexible, I really
don't want to presuppose anything.

        ValueStack stack = (ValueStack) tilesContext.getRequestScope().get(
                ServletActionContext.STRUTS_VALUESTACK_KEY);
        String nextPage = stack.findString("nextPage");
        HttpServletRequest request = (HttpServletRequest)
tilesContext.getRequest();

        String fullUrl = request.getRequestURL().toString();
        // find last slash and strip everything following
        // int index = fullUrl.lastIndexOf("/");
        // fullUrl = fullUrl.substring(0, index);
        // MORE MESSY CODE HERE <-----------

        // GROSS!!!
        nextPage = "/tiles/wizard/"+nextPage+".jsp";
        attributeContext.putAttribute(
            "body",
            new Attribute(nextPage));

On Thu, Apr 17, 2008 at 2:39 PM, Antonio Petrelli <
[EMAIL PROTECTED]> wrote:

> 2008/4/17, [EMAIL PROTECTED] <[EMAIL PROTECTED]>:
> > Right on Antonio!  Can you tell me how to fish the web context root from
> the
> >  Preparer?  I need to construct the page location from this and the
> nextPage
> >  itself.  Is there a list of key names someplace?  Finding this bit of
> data
> >  or that on the stack is typically where productivity takes a nosedive.
>  I
> >  used this key to get the stack:
> >
> >  stack = (ValueStack)
> >
>  
> tilesContext.getRequestScope().get(ServletActionContext.STRUTS_VALUESTACK_KEY);
>
> Unfortunately, Tiles plugin is not "so integrated" to Struts 2, so you
> have to access the value stack in another way.
> The TilesRequestContext.getRequest returns the request object, simply
> cast it to HttpServletRequest (in most cases).
> And the use the ServletActionContext.getValueStackMethod:
>
> http://struts.apache.org/2.0.11.1/struts2-core/apidocs/org/apache/struts2/ServletActionContext.html#getValueStack(javax.servlet.http.HttpServletRequest)<http://struts.apache.org/2.0.11.1/struts2-core/apidocs/org/apache/struts2/ServletActionContext.html#getValueStack%28javax.servlet.http.HttpServletRequest%29>
>
>
> HTH
> Antonio
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>


-- 
Scott
[EMAIL PROTECTED]

Reply via email to