Repository: wicket Updated Branches: refs/heads/master 18f692357 -> 7cd5a9573
minor improvements: writing meta-refresh via header contribution, makes it easier to use cutsom markup in subclass; redirect to home page if no page was intercepted Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/7cd5a957 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/7cd5a957 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/7cd5a957 Branch: refs/heads/master Commit: 7cd5a9573d9cdb696d4c7b527c23b9be03cce576 Parents: 18f6923 Author: Sven Meier <[email protected]> Authored: Sun Apr 26 11:59:26 2015 +0200 Committer: Sven Meier <[email protected]> Committed: Sun Apr 26 11:59:26 2015 +0200 ---------------------------------------------------------------------- .../markup/html/pages/BrowserInfoPage.html | 5 +-- .../markup/html/pages/BrowserInfoPage.java | 43 ++++++++++++-------- 2 files changed, 27 insertions(+), 21 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/7cd5a957/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.html ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.html b/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.html index 81019d4..81b6d96 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.html +++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.html @@ -17,11 +17,8 @@ --> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html xmlns:wicket="http://wicket.apache.org"> - <head> - <meta wicket:id="meta" http-equiv="refresh" /> - </head> <body> - If you see this, it means that both javascript and meta-refresh are not support by + If you see this, it means that both JavaScript and meta-refresh are not support by your browser configuration. Please click <a wicket:id="link" href="#">this link</a> to continue to the original destination. <div wicket:id="postback"></div> http://git-wip-us.apache.org/repos/asf/wicket/blob/7cd5a957/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.java index e86c536..5856015 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.java @@ -16,16 +16,18 @@ */ package org.apache.wicket.markup.html.pages; -import org.apache.wicket.AttributeModifier; import org.apache.wicket.markup.head.IHeaderResponse; +import org.apache.wicket.markup.head.MetaDataHeaderItem; import org.apache.wicket.markup.head.OnLoadHeaderItem; -import org.apache.wicket.markup.html.WebComponent; +import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.markup.html.WebPage; import org.apache.wicket.markup.html.link.Link; import org.apache.wicket.model.AbstractReadOnlyModel; import org.apache.wicket.model.IModel; import org.apache.wicket.protocol.http.ClientProperties; import org.apache.wicket.protocol.http.WebSession; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * This page uses a form post right after the page has loaded in the browser, using JavaScript or @@ -47,6 +49,8 @@ public class BrowserInfoPage extends WebPage { private static final long serialVersionUID = 1L; + private static final Logger log = LoggerFactory.getLogger(BrowserInfoPage.class); + private BrowserInfoForm browserInfoForm; /** @@ -86,21 +90,17 @@ public class BrowserInfoPage extends WebPage } }; - final ContinueLink link = new ContinueLink("link", properties); - add(link); - - WebComponent meta = new WebComponent("meta"); - meta.add(AttributeModifier.replace("content", new AbstractReadOnlyModel<String>() - { - private static final long serialVersionUID = 1L; + // hide the formerly used meta-tag from markup + // TODO remove in Wicket 8 + add(new WebMarkupContainer("meta") { + protected void onAfterRender() { + super.onAfterRender(); - @Override - public String getObject() - { - return "0; url=" + link.getURL(); + log.warn("remove the meta tag with wicket:id=\"meta\" from the markup of your BrowserInfoPage subclass"); } - })); - add(meta); + }.setVisible(false)); + + add(new ContinueLink("link", properties)); browserInfoForm = new BrowserInfoForm("postback", properties) { @@ -112,21 +112,27 @@ public class BrowserInfoPage extends WebPage getModelObject().setJavaScriptEnabled(true); continueToOriginalDestination(); + + // switch to home page if no original destination was intercepted + setResponsePage(getApplication().getHomePage()); } }; add(browserInfoForm); } private static class ContinueLink extends Link<ClientProperties> { + public ContinueLink(String id, IModel<ClientProperties> properties) { super(id, properties); } @Override - public CharSequence getURL() + public void renderHead(IHeaderResponse response) { - return super.getURL(); + String content = "0; url=" + getURL(); + + response.render(new MetaDataHeaderItem(MetaDataHeaderItem.META_TAG).addTagAttribute("http-equiv", "refresh").addTagAttribute("content", content)); } @Override @@ -135,6 +141,9 @@ public class BrowserInfoPage extends WebPage getModelObject().setJavaScriptEnabled(false); continueToOriginalDestination(); + + // switch to home page if no original destination was intercepted + setResponsePage(getApplication().getHomePage()); } }; }
