不同的标记,但wicket中的Java代码相同?

CCC*_*CCC 1 wicket panels

我有一堆带有不同标记的面板.我想重用相同的Java类并使用各种变体进行处理.
在某些面板中,缺少某些组件,但我不想对我的Java类进行更改,以便为每种情况设置组件的可见性.这可能会有点混乱.我想重用相同的Java类,而如果标记中缺少组件,我的应用程序不会中断.所以我认为它归结为:1-你可以在面板类中添加组件,然后不在标记中使用它们吗?

例如:

Java
add(new Label("a","hello"));
add(new Label("b","hi"));
add(new Label("c","see ya"));
add(new Label("d","good bye"));

hello_1.hml
<span wicket:id="a">xxx</span>
<span wicket:id="b">xxx</span>
<span wicket:id="c">xxx</span>
<span wicket:id="d">xxx</span>

hello_2.hml<br>
<span wicket:id="a">xxx</span>
<div wicket:id="d">xxx</div>

hello_3.hml<br>
<div wicket:id="a">xxx</div>
<b wicket:id="c">xxx</b>

hello_4.hml<br>
<div wicket:id="a">xxx</div>
Run Code Online (Sandbox Code Playgroud)

我希望我的问题很明确.

biz*_*lop 6

直接回答你的问题:不,Java和HTML方面应完全匹配.

然而,总有一种方法,具体取决于具体的用例.

  1. 使CSS元素不受CSS或样式属性的影响.
  2. 使用片段来避免呈现可选位.
  3. 使用继承,更多功能丰富的面板扩展了简单的面板.
  4. 使组件不可见于Java代码.

但我不得不承认这个问题听起来有点可疑,有可能通过更仔细地分离组件可以避免整个问题.但是在不了解系统的情况下,很难说清楚.