DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUGĀ·
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=36037>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED ANDĀ·
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=36037

           Summary: Allow query strings and anchors when returning forwards
                    from Action
           Product: Struts
           Version: 1.3.0
          Platform: Other
        OS/Version: other
            Status: NEW
          Severity: normal
          Priority: P3
         Component: Unknown
        AssignedTo: dev@struts.apache.org
        ReportedBy: [EMAIL PROTECTED]


This was prompted by a recent question on the User's list, although I have 
seen similar questions come up many times...

At the end of a typical Action, a developer does:

return mapping.findForward("someForward");

This will, typically, forward to some JSP.  It is sometimes desireable to pass 
parameters to that JSP, or to the next Action if the developer chooses to 
forward to a mapping.  It is also sometimes desireable to be able to send an 
anchor along so that the browser will jump to the named anchor on the returned 
page.

Both of these can be accomplished by "cloning" the returned forward and 
manually setting the path appropriately.  However, I believe this is more work 
than it really needs to be.  Even though it's not a big deal to do, we've 
probably all done it at some point, it does require a developer to know the 
internals of Struts a little more than they maybe should (i.e., they have to 
understand that a ForwardConfig is frozen and has to be cloned to alter its 
fields), and I believe this modification removes that neccessity.

The attached patch enables this capability in a more developer-friendly way, 
namely that they can simply append the query string and/or anchor to the 
forward name requested, like so:

return mapping.findForward("someMapping?myParam=myVal#myAnchor");

In most cases this will probably be constructed dynamically in the Action, but 
the result is the same.

The patch affects four classes: RequestProcessor, PerformForward, 
ActionMapping and ActionForward.  ActionForward simply has two new fields and 
associated bean methods, "queryString" and "anchor".  RequestProcessor and 
PerformForward have identical new code, namely two lines that simply append 
the query string and anchor to the URI forwarded or redirected to.  
ActionMapping is where the more involved (relatively-speaking) changes are, 
but then only in the findForward() method (as well as one new import).

Attached is also a dirt-simple sample app to demonstrate this working.  Should 
just be able to drop it in any container and give it a wirl.

It is my hope that enough people find this useful (and find no problems with 
it of course!) to warrant being committed for the 1.3 release.  I think more 
than a few people will thank us for it :)

-- 
Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

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

Reply via email to