【问题标题】:Wicket DefaultDataTable - Refresh it on browser back buttonWicket DefaultDataTable - 在浏览器后退按钮上刷新它
【发布时间】:2013-03-25 14:46:59
【问题描述】:

在我的应用程序中,我将 DefaultDataTable 与以 LoadableDetachableModel 作为模型的 SortableDataProvider 一起使用。

我用它来显示一组记录(比如 RecordList 页面)。当我添加或删除一些记录并再次加载页面 RecordList 时,它会显示更改。但是,如果我使用浏览器的后退按钮并转到之前租用的 RecordList 页面(在添加/删除记录之前)。 DefaultDataTable 仍然有旧的记录集。当记录被删除时,这是一个大问题。

例如,如果我删除一条记录并按下返回按钮,则页面将失败,因为它试图显示的记录在数据库中不存在。添加不会产生问题,因为它根本没有在记录集中列出。

在另一个页面中,我只有带有 LoadableDetachableModel 的 PageableListView。它工作正常,没有问题。

【问题讨论】:

  • 您确定后退按钮会导致服务器往返并且浏览器不会缓存前一页的 html 吗?你能分享你的 SortableDataProvider 的代码吗?您是否在该层中进行任何缓存?或者您使用的是可能缓存查询的 dao 层?
  • 是的,有一个服务器往返。我没有使用任何缓存。

标签: wicket wicket-1.5 wicketstuff


【解决方案1】:

对此您可以做一两件事。

首先请检查数据提供者是否有最新的数据。

其次,确保在点击浏览器后退按钮时刷新数据提供程序的记录集。确保提供给数据提供者的数据在构造函数之外的方法中被刷新。因为当您回击时不会调用构造函数。因此,您需要使用单独的方法。理想情况下,您可以使用相同的方法,但从构造函数和按下后退按钮时调用。

【讨论】:

  • 感谢您的指导。我会检查并发布回来。
  • 是的,问题出在数据提供者上。干杯!
猜你喜欢
  • 1970-01-01
  • 2019-03-04
  • 2013-07-19
  • 2013-03-19
  • 1970-01-01
  • 1970-01-01
  • 2013-03-02
  • 2015-10-03
  • 2011-02-17
相关资源
最近更新 更多