2014-02-17 49 views
0

我想了解在Wicket中關閉頁面時會發生什麼。我希望能夠檢查一個用戶是否正在運行一個長批處理負載,他們無法打開另一個應用程序實例來運行另一個批處理作業。我將在會話中設置布爾值,然後在頁面被用戶關閉時更改它。我正在做一些狩獵活動,沒有什麼會突然出現。我認爲唯一可以覆蓋的方法是:在Wicket中關閉WebPage時調用的方法?

onDetach()和onRemove()但這些似乎都不起作用。

protected void onDetach() 
{ 
    System.out.println("called inside onDetach()"); 
    super.onDetach(); 
} 

似乎工作,但這種方法也似乎變得頁面上調用兩次渲染

回答

1

所有分離()方法上的任何組件,RequestCycle,會議被稱爲eachtime檢票決定刪除/完成它。在大多數情況下,這意味着渲染完成並且響應已準備好發送回瀏覽器。分離的主要思想是分離任何不需要記憶的東西。

只有一次調用detach沒有定義。它可以根據需要多次調用。

+0

謝謝,所以似乎沒有可靠的方法來處理頁面的某種模擬解構? – eaglei22

+0

是的,很難說什麼是頁面中繼。在Wicket頁面中存在一個請求。該頁面被創建(包括必需的組件)並在第一個請求中呈現,然後它應該被渲染很多次。如果要在呈現頁面時通知,請覆蓋「onAfterRender()」。 –

+0

好主意馬丁。謝謝您的幫助! – eaglei22

相關問題