Author: jrthomerson
Date: Thu Dec 16 22:46:17 2010
New Revision: 1050204

URL: http://svn.apache.org/viewvc?rev=1050204&view=rev
Log:
fixes WICKET-3258 for wicket-1.4.x branch

Modified:
    
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/protocol/http/WebResponse.java

Modified: 
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/protocol/http/WebResponse.java
URL: 
http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/protocol/http/WebResponse.java?rev=1050204&r1=1050203&r2=1050204&view=diff
==============================================================================
--- 
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/protocol/http/WebResponse.java
 (original)
+++ 
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/protocol/http/WebResponse.java
 Thu Dec 16 22:46:17 2010
@@ -247,7 +247,7 @@ public class WebResponse extends Respons
                                        }
                                        else
                                        {
-                                               
httpServletResponse.sendRedirect(url);
+                                               sendRedirect(url);
                                        }
                                        redirect = true;
                                }
@@ -264,6 +264,42 @@ public class WebResponse extends Respons
        }
 
        /**
+        * Called when Wicket wants to send a redirect to the servlet response. 
By default, WebResponse
+        * just calls <code>httpServletResponse.sendRedirect(url)</code>. 
However, certain servlet
+        * containers do not treat relative URL redirects correctly (i.e. 
WebSphere). If you are using
+        * one of these containers, you can override this method and convert 
the relative URL to an
+        * absolute URL before sending the redirect to the servlet container.
+        * 
+        * Example of how to fix this for your buggy container (in your 
application):
+        * 
+        * <pre>
+        * &#064;Override
+        * protected WebResponse newWebResponse(HttpServletResponse 
servletResponse)
+        * {
+        *      return new WebResponse(servletResponse)
+        *      {
+        *              &#064;Override
+        *              public void sendRedirect(String url) throws IOException
+        *              {
+        *                      String reqUrl = 
((WebRequest)RequestCycle.get().getRequest()).getHttpServletRequest()
+        *                              .getRequestURI();
+        *                      String absUrl = 
RequestUtils.toAbsolutePath(reqUrl, url);
+        *                      getHttpServletResponse().sendRedirect(absUrl);
+        *              }
+        *      };
+        * }
+        * </pre>
+        * 
+        * @param url
+        *            the URL to redirect to
+        * @throws IOException
+        */
+       protected void sendRedirect(String url) throws IOException
+       {
+               httpServletResponse.sendRedirect(url);
+       }
+
+       /**
         * Additional header configs for ajax redirects
         */
        protected void configureAjaxRedirect()


Reply via email to