Java 在Wicket中关闭网页时调用的方法?

Java 在Wicket中关闭网页时调用的方法?,java,wicket,Java,Wicket,我试图理解在Wicket中关闭页面时会发生什么。我希望能够检查用户是否正在运行长批处理加载,以确保他们无法打开应用程序的另一个实例来运行另一个批处理作业。我打算在会话中设置一个布尔值,然后在用户关闭页面时更改它。我在打猎,什么也没出来。我认为可以覆盖的唯一方法是: onDetach()和onRemove()但它们似乎都不起作用 protected void onDetach() { System.out.println("called inside onDetach()"); s

我试图理解在Wicket中关闭页面时会发生什么。我希望能够检查用户是否正在运行长批处理加载,以确保他们无法打开应用程序的另一个实例来运行另一个批处理作业。我打算在会话中设置一个布尔值,然后在用户关闭页面时更改它。我在打猎,什么也没出来。我认为可以覆盖的唯一方法是:

onDetach()和onRemove()但它们似乎都不起作用

protected void onDetach()
{
   System.out.println("called inside onDetach()");  
   super.onDetach();
}
似乎有效,除了此方法似乎在页面render上被调用两次之外,任何组件、RequestCycle、Session上的所有detach()方法在每次Time Wicket决定删除/完成它时都被调用。在大多数情况下,这意味着渲染已完成,响应已准备好发送回浏览器。分离的主要思想是分离内存中不需要保留的任何内容


没有关于只调用一次分离的定义。它可以根据需要多次调用。

谢谢,所以似乎没有可靠的方法来处理页面的模拟解构?是的,很难说什么是页面中继。在Wicket中,页面在一个请求下生存。页面在第一个请求中创建(包括必需的组件)并呈现,然后应该多次呈现。如果要在呈现页面时通知,请重写“onAfterRender()”。好主意。谢谢你的帮助!