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
>