You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by Shawn Hainsworth <sh...@acedsl.com> on 2003/06/20 05:21:10 UTC

Problem with RewriteTag RC2 and Websphere

There was a change to the implementation of the RewriteTag in RC2
regarding the way RequestUtils.computeURL() is called.  Rather than
passing redirect as false, redirect is now passed as !this.isXhtml().
WebSphere has a clear implementation of encodeURL() vs.
encodeRedirectURL().  encodeRedirectURL() will always include the
contextPath.  So, when rewrite calls computeURL, computeURL appends
getContextPath() to the URL and then calls encodeRedirectURL() which
also includes the contextPath, so I end up with
http://my.company.com:8080/ContextRoot/ContextRoot/path/to/css

The upshot of this is that my html:rewrite tags (used for css
stylesheets, etc.) no longer work on WebSphere under RC2 unless I
implement Xhtml.  I have not tested other web app servers.

I have read Craig's comment in the source code:
// Note that we're encoding the & character to &amp; in XHTML mode only,

// otherwise the & is written as is to work in javascripts. 

Unless I am missing something, I don't understand why the redirect
parameter is being set based on isXhtml().  My assumption is that Tomcat
or other webapp servers implement encodeRedirectURL() in the same way as
encodeURL() so that this change is not affecting other users of RC2 in
the same way.

It seems to me that the Link tag (superclass of the rewrite tag) should
have a redirect attribute, so that one can determine from the JSP how
the URL is encoded.

Any clarification on this point would be helpful.  For now, I created a
custom tag using the source code for the RC1 release of RewriteTag.


---------------------------------------------------------------------
To unsubscribe, e-mail: struts-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: struts-user-help@jakarta.apache.org