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)