Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Wicket页面销毁事件_Java_Apache_Servlets_Wicket - Fatal编程技术网

Java Wicket页面销毁事件

Java Wicket页面销毁事件,java,apache,servlets,wicket,Java,Apache,Servlets,Wicket,我有一个常规的wicket页面,当我们离开该页面或者页面被破坏时,我需要捕获和处理事件,这两种方法都可以 我已经尝试过覆盖所有可感知的发声方法,但没有一种被触发 有没有一个简单的方法可以做到这一点?将页面注册到某个侦听器也可以 多谢各位 我想我会在这里发布解决方案,这样我们也会有一个 private class ProcessAfterCloseBehavior extends AbstractDefaultAjaxBehavior { @Override pub

我有一个常规的wicket页面,当我们离开该页面或者页面被破坏时,我需要捕获和处理事件,这两种方法都可以

我已经尝试过覆盖所有可感知的发声方法,但没有一种被触发

有没有一个简单的方法可以做到这一点?将页面注册到某个侦听器也可以


多谢各位

我想我会在这里发布解决方案,这样我们也会有一个

private class ProcessAfterCloseBehavior extends AbstractDefaultAjaxBehavior {
        @Override
        public void renderHead(Component component, IHeaderResponse response) {
            super.renderHead(component, response);
            response.render(new OnDomReadyHeaderItem("window.onbeforeunload = function (e) {"
                    + getCallbackScript() + "};"));
        }

        @Override
        protected void updateAjaxAttributes(AjaxRequestAttributes attributes) {
            attributes.setAsynchronous(false);
        }

        @Override
        protected void respond(AjaxRequestTarget target) {
            //Do whatever you need to do.
        }
}

你说的毁灭是什么意思?在请求之后,页面被提供给用户,然后被缓存和序列化。你想怎么处理这个页面?我承认,销毁可能是个愚蠢的词。比方说,当我们离开页面或打开任何其他页面时,我想捕捉一个事件。关键是,一旦我们离开页面,我需要运行一些服务器端代码。我欢迎任何解决方案。这是一个棘手的问题,有一些关于它的讨论,也许它可以帮助你。我相信当用户试图导航离开时,尝试检测有太多的警告。例如,用户在新页面中打开链接或用户失去连接等。如果可以的话,我强烈建议您尝试寻找另一种解决方案来倾听用户离开的声音。