时更改Wicket行为
在我的票据应用程序中有一个自定义的错误和过期页面。但在某些情况下,我想让他们的行为不同(例如,在一个弹出,不应该重定向到我们的主页)。
解决方案有哪些选项?我假设我可以从请求对象中读取错误/过期页中的页面参数。"errorpage = no")。但是,我如何以最佳方式将此查询参数添加到特定页面?
我很确定有人已经解决了这个问题,所以这将是一个很好的机会来分享一个很好的解决方案。
比较相似的问题:如何在页面过期
你可以注册一个RequestCycleListener,它监听"onException"并根据RequestCycle不同地处理异常,否则就回退到默认实现。
(基于Wicket 6.6的代码)
getRequestCycleListeners().add(new AbstractRequestCycleListener() {
@Override
public IRequestHandler onException(RequestCycle cycle, Exception ex) {
if (ex instanceof PageExpiredException) {
//handle your pageExpiredException...
if (something) {
return new RenderPageRequestHandler(new PageProvider(HomePage.class));
}
}
return super.onException(cycle, ex);
}
});