1

我有一堆带有不同标记的面板。我想重用同一个 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>

我希望我的问题很清楚。

4

2 回答 2

6

直接回答您的问题:不,Java 和 HTML 端应该完全匹配。

但是,总有办法解决,具体取决于具体的用例。

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

但我不得不承认这个问题听起来有些可疑,通过更仔细地分离组件,整个问题是可以避免的。但是,如果不了解更多有关该系统的信息,就很难说清楚。

于 2011-05-05T21:15:50.530 回答
1

根据变体在 Java 层次结构中添加组件怎么样?

if ("4".equals(getVariation()) { add(new ComponentA("a")); }

于 2011-05-07T18:07:26.263 回答