我试图了解在Wicket中关闭页面时会发生什么。我希望能够检查用户是否正在运行长批量加载,他们无法打开另一个应用程序实例来运行另一个批处理作业。我打算在会话中设置一个布尔值,然后在用户关闭页面时更改它。我正在做一些狩猎,没有任何东西弹出。我想要覆盖的唯一方法是:
onDetach()和onRemove(),但这些似乎都不起作用。
protected void onDetach()
{
System.out.println("called inside onDetach()");
super.onDetach();
}
似乎工作,除了这个方法似乎也在页面渲染上被调用了两次
答案 0 :(得分:2)
每次Wicket决定删除/完成任何Component,RequestCycle,Session时,都会调用所有 detach()方法。在大多数情况下,这意味着渲染已完成,并且准备好响应以发送回浏览器。分离的主要思想是分离任何不需要记忆的东西。
没有关于仅仅调用一次分离的定义。可以根据需要多次调用它。