如何为弹出窗口和其他特殊页面使用不同的Wicket过期/错误页面



在我的票据应用程序中有一个自定义的错误和过期页面。但在某些情况下,我想让他们的行为不同(例如,在一个弹出,不应该重定向到我们的主页)。

解决方案有哪些选项?我假设我可以从请求对象中读取错误/过期页中的页面参数。"errorpage = no")。但是,我如何以最佳方式将此查询参数添加到特定页面?

我很确定有人已经解决了这个问题,所以这将是一个很好的机会来分享一个很好的解决方案。

比较相似的问题:如何在页面过期

时更改Wicket行为

你可以注册一个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);
        }
    });

最新更新