这样做是为了显示PageExpiredPage是几秒钟可见,并自动重定向到HomePage,当网络会话过期.
通过以下代码PageExpiredPage显示带有书签链接的显示HomePage.
PageExpiredPage.html:
Your session expired, log in anew by clicking
<a wicket:id="lnk-home-page" href="#"> here</a>
...
Run Code Online (Sandbox Code Playgroud)
PageExpiredPage.java:
final Application app = Session.get().getApplication();
BookmarkablePageLink<? extends Page> lnkHomePage = new BookmarkablePageLink<? extends Page>("lnk-home-page", app.getHomePage());
add(lnkHomePage);
...
Run Code Online (Sandbox Code Playgroud)
如何在Wicket中编码PageExpiredPage,显示后,HomePage在可配置的秒数后自动重定向到?
比RedirectPage更好的解决方案是自定义行为.RedirectPage的明显问题是您不能使用公共基类来进行页面布局.
public class RedirectBehavior extends Behavior {
private final Class<? extends Page> page;
private final int redirectInSeconds;
public RedirectBehavior(Class<? extends Page> page, int redirectInSeconds) {
this.page = page;
this.redirectInSeconds = redirectInSeconds;
}
@Override
public void renderHead(Component component, IHeaderResponse response) {
response.renderString(String.format("<meta http-equiv='refresh' content='%d;URL=%s' />", redirectInSeconds,
RequestCycle.get().urlFor(page, null)));
}
}
Run Code Online (Sandbox Code Playgroud)
这样你就可以getHomePage()直接传递返回值- 不需要newInstance():
public class PageExpiredPage extends YourBasePage {
public PageExpiredPage () {
add(new RedirectBehavior(Application.get().getHomePage(), 5));
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3230 次 |
| 最近记录: |