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 & 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]
