That's sort of what I thought. If you have any suggestions as to how you
would change this then I would be more than happy to implement then and
post the patch file up to this group.

Well, the first thing that needs to go is the checking for href, page, forward, and action. These should have their own methods (like computeForwardURL) so we don't have nasty if statements in computeURL. Then the anchor and parameter handling need their own methods


The TestRequestUtils class needs to be updated to test all the new functionality so nothing breaks. We shouldn't do this for 1.1 but if you post a patch I'll look at applying it for 1.2.

In fact, we should investigate separating all URL related methods from RequestUtils into a new UrlUtils (or similarly named) class.

David


Regards


David Wilkinson


-----Original Message----- From: David Graham [mailto:[EMAIL PROTECTED] Sent: 18 June 2003 16:59 To: [EMAIL PROTECTED] Subject: RE: Problem with the html:rewrite tag

>But looking into what is happening in the code still does not make
sense
>to me, why is the redirect parameter being used for this encoding.
>According to the following code taken from the computeURL method in
>RequestUtils
>
>
>         // Perform URL rewriting to include our session ID (if any)
>         if (pageContext.getSession() != null) {
>             HttpServletResponse response = (HttpServletResponse)
>pageContext.getResponse();
>             if (redirect) {
>                 return (response.encodeRedirectURL(url.toString()));
>             } else {
>                 return (response.encodeURL(url.toString()));
>             }
>         } else {
>              return (url.toString());
>          }
>
>the only time the url string will be encoded is if there is an active
>session object and if there is then the url will be encoded regardless
>just using different methods to do so. Which to me says there is an
>error with the logic of using the redirect flag.

Well, you're right.  It was a poor decision I made to fix a different
bug.
The computeURL method is already fairly gross and adding another
parameter
makes it even worse so rather than refactor I chose to use the redirect
parameter.  I'll look at changing this as soon as I can.

David

>
>Regards
>
>David Wilkinson
>
>
>-----Original Message-----
>From: David Graham [mailto:[EMAIL PROTECTED]
>Sent: 18 June 2003 14:37
>To: [EMAIL PROTECTED]
>Subject: Re: Problem with the html:rewrite tag
>
>The ampersand is only encoded in xhtml mode because people wanted to
use
>
><html:rewrite> in javascript which breaks with encoded ampersands.
>
>David
>
> >Hi
> >
> >Since getting hold of struts 1.1 RC2 I have been getting a problem
with
> >the rewrite tag generating a url with the context root in twice.
> >I have seen that this error has been raised as an error under
> >
> >http://issues.apache.org/bugzilla/show_bug.cgi?id=20835
> >
> >upon looking at the code I have noticed that the class
RewriteTag.java
> >has been changed between RC1 and RC2 to in clued the following
> >
> >             // Note that we're encoding the & character to &amp; in
> >XHTML mode only,
> >             // otherwise the & is written as is to work in
>javascripts.
> >                                     url =
> >
>RequestUtils.computeURL(
> >
>pageContext,
> >                                                             forward,
> >                                                             href,
> >                                                             page,
> >                                                             null,
> >                                                             params,
> >                                                             anchor,
> >
> >!this.isXhtml());
> >
> >My question is why is the isXhtml() value being passed as the
redirect
> >parameter to computeURL, as this does not make sense, what has
> >redirecting the URL got to do with the encoding any & characters. And
>if
> >it is so important to do this then why was the same code not included
>in
> >the LinkTag which is still passing the redirect parameter as false.
> >
> >Regards
> >
> >David Wilkinson
> >
>
>_________________________________________________________________
>Help STOP SPAM with the new MSN 8 and get 2 months FREE*
>http://join.msn.com/?page=features/junkmail
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: [EMAIL PROTECTED]
>For additional commands, e-mail: [EMAIL PROTECTED]
>
>
>
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: [EMAIL PROTECTED]
>For additional commands, e-mail: [EMAIL PROTECTED]
>

_________________________________________________________________
The new MSN 8: advanced junk mail protection and 2 months FREE*
http://join.msn.com/?page=features/junkmail


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





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


_________________________________________________________________
The new MSN 8: smart spam protection and 2 months FREE* http://join.msn.com/?page=features/junkmail



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



Reply via email to