我有一個使用Apache Wicket 6.x的Java應用程序;有時例外StalePageException如下所述觸發並顯示在日誌中。但是,由於沒有對用戶的反饋,應用程序的行爲意外導致沮喪。Apache Wicket:在出現StalePageException時顯示錯誤消息
如何捕獲StalePageException並向用戶(最好使用反饋面板)解釋情況?
在標籤頁/窗口中打開一個有狀態頁面,然後從地址欄複製地址欄並在新標籤頁/窗口中打開它。然後回到第一個 選項卡/窗口並嘗試點擊任何有狀態的鏈接。這將導致 StalePageException。
由於Wicket檢測到同一頁面實例已在當前頁面的呈現和點擊鏈接的 之間渲染了 ,所以拋出它。 Wicket這樣做是因爲它不確定在初始呈現 和click事件之間是否存在 頁面樹層次結構中的任何更改。甚至有可能這個鏈接在頁面的最後一個版本中不存在 ,所以如果StalePageException之前沒有拋出 ,則此點擊可能導致 ComponentNotFoundException。
StalePageException只會導致呈現當前頁面。因此, 用戶將看到該頁面的最後一個版本,他將需要 再次點擊該鏈接。