2

TabbedPanel (链接)的 Wicket 示例页面为每个选项卡(TabPanel1、TabPanel2 和 TabPanel3)使用单独、不同的类。有理由不只使用同一类的三个实例吗?如果是,那是什么?我对 Wicket 还是很陌生,但这些课程看起来和我一模一样。

编辑:我运行了一个简单的例子,使用三个对象都属于 tabPanel 类。每个都设置为使用不同的标签,并且它们确实显示正确。

再次编辑:在做了更多的实验并阅读了后来发布的答案之后,我意识到我的第一个例子太简单了。使用一个类,选项卡标题可以不同,但​​逻辑仍然相同。除非正如有人提到的那样,它变成了“瑞士军刀”类,否则这是行不通的,这是糟糕的设计。这仍然无法解决标记文件。

4

3 回答 3

2

Wicket 旨在鼓励可重用组件的开发。将三个不同的类视为您希望在应用程序的不同页面中使用的具有完全不同的行为和内容的不同组件。Tab1 为联系信息,Tab2 为地图,Tab3 为图片。你真的不想创建一个瑞士军刀面板来管理所有这些不同的目的。因此,示例中使用了不同的面板类。

诚然,该示例没有使用最佳值 - 但如果您从 wicket 的一般原则开始(特别注意学习如何使用模型)而不是使用 wicket-extension 中的这些特殊组件,这可能是一个更好的主意包裹。

于 2009-10-21T14:08:46.197 回答
1

如果你使用同一个类的三个实例,你最终会在每个选项卡上得到相同的内容......不是很有用吗?

于 2009-10-16T18:22:21.797 回答
0

正如您所展示的,这是可能的,并且在面板的显示由模型控制的情况下会很好地工作。

假设您有一个显示和地址的组件,其中嵌入了该位置的谷歌地图图像..

您可以创建 3 个相同的“AddressWithMapPanel”实例,将不同的模型传递给每个实例,每个表是“Home”、“Work”、“Other”地址。然后,您可以使用选项卡逻辑在查看不同地址之间切换,将相同的 UI 更改保持在中心位置,但获取不同的内容。

于 2009-10-23T06:00:32.773 回答