Wicket:可变ListView / DataView中的链接

时间:2012-08-31 08:14:54

标签: java wicket

假设我有一组项目需要在表格/列表中显示。该集是高度可变的,因为后台作业和其他用户访问相同的数据。

现在,结果输出必须包含触发基础数据操作的链接。这些操作可能会从集合中删除某个项目,但并不总是这样做。

由于ListView的模型(我现在不太确定DataView)是基于索引的,因此在这种情况下它必然会失败。当我点击引用错误对象的链接时出现错误,因为基础列表的顺序或大小已更改。

所以我需要的是总是引用它们应该操作的对象的自然ID的链接。当链接被呈现给用户时,无论渲染时使用的集合发生了什么,我都希望渲染链接始终引用同一个对象。

最简单的解决方案是使用仅包含操作和id的无状态链接,将用户引导到另一个页面。但这有一个明显的缺点,即我放弃了组件系统首先提供的所有好处。

你会如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

DataView是非基于索引的,请参阅IDataProvider #model(),这样您就可以得到正确答案。