Wicket DefaultDataTable-在浏览器上刷新返回按钮

Wicket DefaultDataTable-在浏览器上刷新返回按钮,wicket,wicket-1.5,wicketstuff,Wicket,Wicket 1.5,Wicketstuff,在我的应用程序中,我使用带有SortableDataProvider的DefaultDataTable,它的模型是LoadableDetachableModel 我用它来显示一组记录(比如记录列表页面)。当我添加或删除一些记录并再次加载页面记录列表时,它会显示更改。但是,如果我使用浏览器的“上一步”按钮并转到先前租用的记录列表页面(在添加/删除记录之前)。DefaultDataTable仍然具有旧的记录集。删除记录时,这是一个大问题 例如,如果我删除了一条记录并按了“上一步”按钮,那么页面将失败

在我的应用程序中,我使用带有SortableDataProvider的DefaultDataTable,它的模型是LoadableDetachableModel

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

例如,如果我删除了一条记录并按了“上一步”按钮,那么页面将失败,因为它试图显示的记录在数据库中不存在。添加不会产生问题,因为它根本不会列在记录集中


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

对此,您可以做一两件事

首先,请检查数据提供商是否拥有最新数据


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

是否确定“后退”按钮会导致服务器往返,并且浏览器不会缓存上一页的html?您可以共享SortableDataProvider的代码吗?您在该层中进行缓存吗?或者您使用的是可以缓存查询的dao层吗?是的,存在服务器往返。我没有使用任何缓存。谢谢你的指导。我会检查并发回。是的,问题是数据提供者。干杯