Apache Wicket Repeaters:概述

Sti*_*ens 14 java wicket

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

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

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

jbr*_*ver 28

Wicket有很多额外的,琐碎的课程,这会引起你的困惑.不同的组件针对不同的情况比较好,但也有不添加任何真正的复杂罕见的情况下很多Wicket组件的.

例如,RequiredTextField整个类相当于:

 TextField x = new TextField("text");
 x.setRequired(true);
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

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

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

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

 item.add(new Label("name")); 
Run Code Online (Sandbox Code Playgroud)

代替

 item.add(new Label("name", new PropertyModel<String>(item.getModel(), "name")))
Run Code Online (Sandbox Code Playgroud)

循环 - 如果要重复Integer多次而不是设置数据列表,则非常有用.这将相当于ListView其模型对象是一个List<Integer>充满整数从0length

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

希望有所帮助!