java - Apache Wicket 中继器 : an overview

标签 java wicket

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/

相关文章:

java - 如何在 Wicket 的 InternalErrorPage 中显示堆栈跟踪

java - 输入字段更改后的 Wicket 数据表过滤

java - Wicket 口:getModelObject 返回 null

java - Wicket - 获取标记元素的主体

java - 在本地主机上开发并在远程虚拟服务器上部署时的 Url 问题

java - 我必须编写自己的异常吗? - java

java - TDD - 以不同于实现中使用的方式检查方法的正确性

java - 如何将 cmake 配置为仅重建 java 项目中已更改的 .java 文件?

java - 自定义 PNG 光标 - 边缘不平滑

java - Wicket 正在更改 requestURL