Apache Wicket Repeaters:概述

时间:2011-10-13 07:15:33

标签: java wicket

Wicket有很多AbstractRepeater实现:ListView,DataView,GridView,Loop,PropertyListView等。

就个人而言,我发现很难确定哪种观点对于哪种情况是理想的。我通常坚持使用DataView但这只是因为我已经习惯了。也许GridView对于场景A,B的PropertyListView,....更好。

是否有人知道某个博客或任何教程,其中解释了观点的差异,或者任何人可以解释哪个观点最适合哪个用例?

1 个答案:

答案 0 :(得分:28)

Wicket有很多额外的,琐碎的课程,这会引起你的困惑。对于不同的场景,不同的组件 更好,但是对于罕见的情况,有许多Wicket组件不会增加任何真正的复杂性。

例如,RequiredTextField是一个完整的类,相当于:

 TextField x = new TextField("text");
 x.setRequired(true);

我认为这源于旧版本,其中所需的设置更复杂,但它仍然存在引起一些混淆。

许多中继器都很相似。 PropertyListView只是将模型包装在CompoundPropertyModel中,使属性表达式更容易(见下文)。但是,您可以自己轻松地进行此更改。

所以,这是我的快速摘要,因为我无法找到您所描述的最新博客文章:

重复查看 - 当您没有列表或添加不同类型的组件(因此不同的内部标记)时非常有用。

ListView - 如果你有一个List并且你正在显示整个内容,则非常有用。可悲的是,它不适用于其他已排序的集合。

DataView - 如果从数据库加载,则非常有用。其他方法允许您轻松地对数据集进行排序,分页和修改。

PropertyListView - 如果您只是通过属性表达式显示值,则非常有用。允许你这样做

 item.add(new Label("name")); 

而不是

 item.add(new Label("name", new PropertyModel<String>(item.getModel(), "name")))

循环 - 如果您想重复Integer次而不是设置的数据列表,则非常有用。这相当于ListView,其模型对象为List<Integer>,其中填充了从0length的整数

GridView - 用于获取单个列表(例如21个字符串)并使用两组标记(内部/外部)以组显示该列表(例如7x3网格)。但是,它假定您的标记使用某些检票口:id,但没有详细记录。我认为使用一对嵌套的RepeatingView组件会更好,这些组件可以实现同样的目的。

希望有所帮助!