Since #onRedirect() is final currently, I'm +1 to remove IRedirectListener.
Sven
On 02/20/2014 11:03 AM, Martin Grigorov wrote:
I've missed RedirectPage in my search the first time. Thanks!
Here is a better version:
diff --git
i/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/RedirectPage.java
w/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/RedirectPage.java
index 9b60bea..57f6f1f 100644
---
i/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/RedirectPage.java
+++
w/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/RedirectPage.java
@@ -17,8 +17,9 @@
package org.apache.wicket.markup.html.pages;
import org.apache.wicket.AttributeModifier;
-import org.apache.wicket.IRedirectListener;
import org.apache.wicket.Page;
+import org.apache.wicket.core.request.handler.PageProvider;
+import org.apache.wicket.core.request.handler.RenderPageRequestHandler;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.model.Model;
@@ -57,7 +58,7 @@ public class RedirectPage extends WebPage
{
final WebMarkupContainer redirect = new
WebMarkupContainer("redirect");
final String content = waitBeforeRedirectInSeconds +
";URL=" + url;
- redirect.add(new AttributeModifier("content", new
Model<String>(content)));
+ redirect.add(new AttributeModifier("content", new
Model<>(content)));
add(redirect);
}
@@ -69,7 +70,7 @@ public class RedirectPage extends WebPage
*/
public RedirectPage(final Page page)
{
- this(page.urlFor(IRedirectListener.INTERFACE,
page.getPageParameters()), 0);
+ this(page, 0);
}
/**
@@ -83,7 +84,7 @@ public class RedirectPage extends WebPage
*/
public RedirectPage(final Page page, final int
waitBeforeRedirectInSeconds)
{
- this(page.urlFor(IRedirectListener.INTERFACE,
page.getPageParameters()),
+ this(page.urlFor(new RenderPageRequestHandler(new
PageProvider(page))),
waitBeforeRedirectInSeconds);
}
I think it is better because it will create a "nice looking" url if there
is #mountPage() for this page.
Martin Grigorov
Wicket Training and Consulting
On Thu, Feb 20, 2014 at 11:52 AM, Ernesto Reinaldo Barreiro <
[email protected]> wrote:
Martin,
I cannot find where IRedirectListener#onRedirect is actually called except
when page is visited via RedirectPage... So, to me is just a marker...
Maybe making it not final might make sense as a page could do something
when some other RedirectPage redirects to it?
On Thu, Feb 20, 2014 at 10:30 AM, Martin Grigorov <[email protected]
wrote:
Hi,
I have the following patch here:
-public abstract class Page extends MarkupContainer implements
IRedirectListener, IRequestablePage
+public abstract class Page extends MarkupContainer implements
IRequestablePage
{
/** True if the page hierarchy has been modified in the current
request. */
private static final int FLAG_IS_DIRTY = FLAG_RESERVED3;
@@ -497,16 +497,6 @@ public abstract class Page extends MarkupContainer
implements IRedirectListener,
}
/**
- * Redirect to this page.
- *
- * @see org.apache.wicket.IRedirectListener#onRedirect()
- */
- @Override
- public final void onRedirect()
- {
- }
-
o.a.w.Page currently implements IRedirectListener but does nothing in
#onRedirect() and the method is final.
What is the idea here ? Maybe to forbid page specializations to use
IRedirectListener ?!
With my patch there are no other implementations of IRedirectListener, so
we can remove it completely. Can you imagine a use case when IRL is
needed
?
Martin Grigorov
Wicket Training and Consulting
--
Regards - Ernesto Reinaldo Barreiro