Java 为Wicket中的每个选项卡使用不同类的目的是什么?

Java 为Wicket中的每个选项卡使用不同类的目的是什么?,java,wicket,Java,Wicket,TabbedPanel()的Wicket示例页面为每个选项卡(TabPanel1、TabPanel2和TabPanel3)使用单独的、不同的类。是否有理由不只是使用同一类的三个实例?如果是,是什么?我对Wicket还是相当陌生的,但这些课程对我来说都是一样的 编辑:我运行了一个简单的示例,使用了三个对象所有类tabPanel。每一个都设置为使用不同的标签,并且它们确实正确显示 再次编辑:在做了更多的实验并阅读了后来发布的答案后,我意识到我的第一个例子太简单了。使用一个类,选项卡标题可以不同,但逻

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

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


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

如果使用同一类的三个实例,则每个选项卡上的内容都是相同的。。。它不是很有用吗?

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


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

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

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


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

我不明白为什么您不能在其中设置不同的内容。是的,正如您的测试所示,您可以多次使用同一类,但我不确定这是一个非常典型的用例。。再加上一些组件,也许还有一些表单元素,你会发现如果你想让你的标签有所不同,重用同一个类是没有用的。好吧,很明显,我在第一次阅读你的答案时漏掉了一些东西。我以为你在说你不能在一个类中使用三个不同的字符串,因为它们都是一样的,但我现在明白你的意思了。如果你编辑你的帖子,我会撤销-1。啊,没问题,很高兴看到你回来提到这件事。。当然,我的回答并不是最详细的。。msparer在向Wicket的新手解释问题方面做得更好。。