Wicket 6.22 自动重定向到外部 URL
Wicket 6.22 Automatic redirection to external URL
我有一个 wicket (6.22) 网络应用程序。我需要执行自动重定向到外部 URL。场景描述如下:
- 客户在表单中输入数据
- 服务器处理多个操作并显示结果页面
- 结果页面应持续 5 秒,然后自动将客户重定向到外部 URL。
结果页面包含 "back" link,因此客户可能会单击它以重定向到相同的外部 URL。
我确实使用了"renderHead"功能来添加标签
<meta http-equiv="refresh" content="5; url=http://example.com">
问题是我需要在重定向之前使会话无效。如果我这样做,客户将被重定向到我的 ExpiredSession 页面,而不是外部 URL.
他们有任何干净的解决方案吗?
感谢您的帮助
您可以设置一个 Ajax 行为,而不是使用 <meta http-equiv="refresh" content="5; url=http://example.com">
:1) 使会话无效; 2) 重定向到外部页面
anyComponent.add(new AbstractAjaxTimerBehavior(Duration.seconds(5)) {
@Override protected void onTimer(AjaxRequestTarget target) {
getSession().invalidate();
throw new RedirectToUrlException("https://external.page");
}
});
我有一个 wicket (6.22) 网络应用程序。我需要执行自动重定向到外部 URL。场景描述如下:
- 客户在表单中输入数据
- 服务器处理多个操作并显示结果页面
- 结果页面应持续 5 秒,然后自动将客户重定向到外部 URL。 结果页面包含 "back" link,因此客户可能会单击它以重定向到相同的外部 URL。
我确实使用了"renderHead"功能来添加标签
<meta http-equiv="refresh" content="5; url=http://example.com">
问题是我需要在重定向之前使会话无效。如果我这样做,客户将被重定向到我的 ExpiredSession 页面,而不是外部 URL.
他们有任何干净的解决方案吗?
感谢您的帮助
您可以设置一个 Ajax 行为,而不是使用 <meta http-equiv="refresh" content="5; url=http://example.com">
:1) 使会话无效; 2) 重定向到外部页面
anyComponent.add(new AbstractAjaxTimerBehavior(Duration.seconds(5)) {
@Override protected void onTimer(AjaxRequestTarget target) {
getSession().invalidate();
throw new RedirectToUrlException("https://external.page");
}
});