Wicket 有很多 AbstractRepeaters 的实现:ListView、DataView、GridView、Loop、PropertyListView 等。
就我个人而言,我发现很难确定哪种 View 最适合哪种情况。我通常坚持使用 DataView,但这仅仅是因为我已经习惯了。也许 GridView 更适合场景 A,PropertyListView 更适合 B,....
是否有人知道解释 View 差异的博客或任何教程,或者有人可以解释哪种 View 最适合哪种用例?
最佳答案
Wicket 有很多额外的、琐碎的类,这会让您感到困惑。不同的组件更适合不同的场景,但是有很多 Wicket 组件用于极少数情况,不会增加任何真正的复杂性。
例如,RequiredTextField
是一个完整的类,相当于:
TextField x = new TextField("text");
x.setRequired(true);
我认为这源于旧版本,其中需要的设置更复杂,但它仍然会引起一些困惑。
你们的许多中继器都是相似的。 PropertyListView
只是将模型包装在 CompoundPropertyModel
中,使属性表达式更容易(见下文)。但是,您可以轻松地自己进行此更改。
因此,这是我的快速总结,因为我无法找到您所描述的最新博客文章:
RepeatingView - 当您没有列表或您要添加不同类型的组件(因此需要不同的内部标记)时非常有用。
ListView - 如果您有 List
则很有用你正在展示整个东西。遗憾的是,它不适用于其他已排序的集合。
DataView - 如果您正在从数据库加载,则很有用。其他方法使您可以轻松地对数据集进行排序、分页和修改。
PropertyListView - 如果您只是通过属性表达式显示值,则很有用。允许你做
item.add(new Label("name"));
代替
item.add(new Label("name", new PropertyModel<String>(item.getModel(), "name")))
Loop - 如果你想重复 Integer
很有用次数而不是一组数据。这相当于 ListView
其模型对象是 List<Integer>
用 0
中的整数填充至 length
GridView - 对于获取单个列表(例如 21 个字符串)并使用两组标记(内部/外部)以组(例如 7x3 网格)显示该列表非常有用。但是,它假设您的标记使用了某些 wicket:id,这没有很好的记录。我认为你最好使用一对嵌套的 RepeatingView
组件,完成同样的事情。
希望对您有所帮助!
关于java - Apache Wicket 中继器 : an overview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7750639/