我对 Wicket 还很陌生。我喜欢它的核心原则,但在我看来,我还缺少一个非常重要的功能。 我想做的事:
定义组件
class MyPanel extends Panel {
...
}
定义其标记
<html xmls:wicket....>
<wicket:panel>
This is my panel <br />
<wicket:subComponents/>
</wicket:panel>
</html>
(显然,我创建了<wicket:subComponents\>
)
定义页面
class MyPage extends WebPage {
public MyPage() {
super();
MyPanel panel = new MyPanel("myPanel"));
panel.add(new Component...);
panel.add(new Component...);
...
}
}
如您所见,我想将组件嵌套到其他组件中,而无需在标记中显式添加嵌套组件并指定 wicket:id
.(参见上面的第二个代码片段)
现在的问题是:能做到吗?如果是,怎么办?
请您参考如下方法:
为什么不直接使用中继器:
<html xmls:wicket....>
<wicket:panel>
This is my panel <br />
<div wicket:id="subComponents"></div>
</wicket:panel>
</html>
class MyPanel extends Panel {
RepeatingView repeater;
MyPanel() {
add(repeater = new RepeatingView("subComponents");
}
public void addSub(Component component) {
repeater.add(component);
}
}