在DataViews之间共享Wicket DataProvider时出现问题

时间:2012-09-12 10:27:18

标签: java wicket

我的网页显示两个表格,显示相同数据的不同视图。

这些表由Wicket DataView对象支持,它们使用DataProvider为表提供数据。

现在因为这两个表显示了相同数据的不同视图,所以我在两个DataView之间共享相同的DataProvider。

然而,在我的DataProvider中,我看不到确定哪个DataView请求数据的方法。有没有办法可以区分这两者,在我获取数据的时候?有一些方法可以知道我正在处理哪个表,所以我可以相应地过滤数据。

最好的方法是什么?

1 个答案:

答案 0 :(得分:1)

DataProvider中定义一个可执行特定逻辑的可覆盖方法,或获取要执行哪些逻辑的信息,并通过实例化它的视图中的匿名子类来实现它。通过这种方式,您可以将一些逻辑(或为了执行它而被重新修改的数据)委托给使用DataProvider的视图。

请注意,这是将DataProvider子类化为公共类并在视图中直接使用它们的惰性版本。