[ 
https://issues.apache.org/jira/browse/VELTOOLS-146?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13071786#comment-13071786
 ] 

Nathan Bubna commented on VELTOOLS-146:
---------------------------------------

Actually, instead of creating a setFromURI that doesn't override actual values 
with null ones, i think there is no good reason that setFromURI should ever do 
that.  So we should just adapt setFromURI to have a lighter touch and have 
relative(url) and absolute(url) use that.

> LinkTool.relative(url) and LinkTool.absolute(url) improperly handle URLs with 
> query strings or anchors
> ------------------------------------------------------------------------------------------------------
>
>                 Key: VELTOOLS-146
>                 URL: https://issues.apache.org/jira/browse/VELTOOLS-146
>             Project: Velocity Tools
>          Issue Type: Bug
>          Components: GenericTools
>    Affects Versions: 2.0
>            Reporter: Nathan Bubna
>            Priority: Minor
>             Fix For: 2.1
>
>
> On Tue, Jul 26, 2011 at 2:27 PM, Christopher Schultz 
> <ch...@christopherschultz.net> wrote:
> ...
> > We use StrutsLinkTool pretty much everywhere and had been relying on the
> > previous behavior (tools 1.4) of StrutsLinkTool.setForward(String) which
> > takes a reference to a Struts-defined "forward" which is basically just
> > a URL.
> >
> > In the past, we were able to define a URL in Struts like this:
> >
> > <forward name="some-reference" path="/path/to/resource?foo=bar" />
> >
> > Then, in the markup:
> >
> > <a href="$link.setForward('some-reference')">link text</a>
> >
> > It appears that somewhere in the modifications, the URL ha sbeen
> > sanitized and now "/path/to/resource?foo=bar" has been helpfully
> > replaced by "/path/to/resource%3Ffoo=bar".
> >
> > Was this intentional? Is there a way to get the old behavior back?
> It was unintentionally changed, in part because i wasn't aware that forwards 
> could/would contain query strings.  Basically, setForward passes the url to 
> absolute(url) which would correctly handle absolute urls with query strings 
> but treats relative urls as merely paths, without parsing out anchors or 
> query strings. 
> I think we should adapt both $link.relative($url) and $link.absolute($url) to 
> accept paths with query strings and anchors.  This probably will require a 
> setFromURI(url, withoutOverriding) adapted from what absolute($url) does for 
> actual absolute URIs.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@velocity.apache.org
For additional commands, e-mail: dev-h...@velocity.apache.org

Reply via email to