Author: ivaynberg
Date: Wed Jan  7 09:15:42 2009
New Revision: 732402

URL: http://svn.apache.org/viewvc?rev=732402&view=rev
Log:
WICKET-1916, WICKET-1998

Modified:
    
wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/basic/RedirectRequestTarget.java
    
wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/component/BookmarkablePageRequestTarget.java

Modified: 
wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/basic/RedirectRequestTarget.java
URL: 
http://svn.apache.org/viewvc/wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/basic/RedirectRequestTarget.java?rev=732402&r1=732401&r2=732402&view=diff
==============================================================================
--- 
wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/basic/RedirectRequestTarget.java
 (original)
+++ 
wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/basic/RedirectRequestTarget.java
 Wed Jan  7 09:15:42 2009
@@ -81,10 +81,17 @@
                        }
                        else
                        {
-                               response.redirect(RequestCycle.get()
+                               String location = RequestCycle.get()
                                        .getRequest()
                                        .getRelativePathPrefixToContextRoot() +
-                                       redirectUrl.substring(1));
+                                       redirectUrl.substring(1);
+
+                               if (location.startsWith("./") && 
location.length() > 2)
+                               {
+                                       location = location.substring(2);
+                               }
+
+                               response.redirect(location);
                        }
                }
                else if (redirectUrl.indexOf("://") > 0)

Modified: 
wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/component/BookmarkablePageRequestTarget.java
URL: 
http://svn.apache.org/viewvc/wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/component/BookmarkablePageRequestTarget.java?rev=732402&r1=732401&r2=732402&view=diff
==============================================================================
--- 
wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/component/BookmarkablePageRequestTarget.java
 (original)
+++ 
wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/component/BookmarkablePageRequestTarget.java
 Wed Jan  7 09:15:42 2009
@@ -25,8 +25,8 @@
 import org.apache.wicket.request.IRequestCycleProcessor;
 
 /**
- * Default implementation of {...@link IBookmarkablePageRequestTarget}. Target 
that denotes a page
- * that is to be created from the provided page class. This is typically used 
for redirects to
+ * Default implementation of {...@link IBookmarkablePageRequestTarget}. Target 
that denotes a page that
+ * is to be created from the provided page class. This is typically used for 
redirects to
  * bookmarkable pages or mounted pages.
  * 
  * @author Eelco Hillenius
@@ -107,7 +107,7 @@
                        throw new IllegalArgumentException("Argument pageClass 
must be an instance of " +
                                Page.class.getName());
                }
-               this.pageClassRef = new WeakReference(pageClass);
+               pageClassRef = new WeakReference(pageClass);
                this.pageParameters = (pageParameters == null) ? new 
PageParameters() : pageParameters;
                this.pageMapName = pageMapName;
        }
@@ -222,7 +222,16 @@
                        {
                                IRequestCycleProcessor processor = 
requestCycle.getProcessor();
                                String redirectUrl = 
processor.getRequestCodingStrategy()
-                                       .encode(requestCycle, this).toString();
+                                       .encode(requestCycle, this)
+                                       .toString();
+
+                               // WICKET-1916 - if we are redirecting to 
homepage, then redirectUrl equals "./",
+                               // and if we strip it to blank, no redirect 
occurs
+                               if (redirectUrl.startsWith("./") && 
redirectUrl.length() > 2)
+                               {
+                                       redirectUrl = redirectUrl.substring(2);
+                               }
+
                                
requestCycle.getResponse().redirect(redirectUrl);
                        }
                        else
@@ -254,7 +263,8 @@
        protected Page newPage(final Class pageClass, final RequestCycle 
requestCycle)
        {
                // Construct a new instance using the default page factory
-               IPageFactory pageFactory = 
requestCycle.getApplication().getSessionSettings()
+               IPageFactory pageFactory = requestCycle.getApplication()
+                       .getSessionSettings()
                        .getPageFactory();
 
                if (pageParameters == null || pageParameters.size() == 0)


Reply via email to