我有一个使用Apache Wicket 6.x的Java应用程序;有时例外StalePageException如下所述触发并显示在日志中。但是,由于没有对用户的反馈,应用程序的行为意外导致沮丧。Apache Wicket:在出现StalePageException时显示错误消息
如何捕获StalePageException并向用户(最好使用反馈面板)解释情况?
在标签页/窗口中打开一个有状态页面,然后从地址栏复制地址栏并在新标签页/窗口中打开它。然后回到第一个 选项卡/窗口并尝试点击任何有状态的链接。这将导致 StalePageException。
由于Wicket检测到同一页面实例已在当前页面的呈现和点击链接的 之间渲染了 ,所以抛出它。 Wicket这样做是因为它不确定在初始呈现 和click事件之间是否存在 页面树层次结构中的任何更改。甚至有可能这个链接在页面的最后一个版本中不存在 ,所以如果StalePageException之前没有抛出 ,则此点击可能导致 ComponentNotFoundException。
StalePageException只会导致呈现当前页面。因此, 用户将看到该页面的最后一个版本,他将需要 再次点击该链接。