我对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
。(请参阅上面的第二个代码段)
这样我就可以将Java类映射到标记片段(上面的第一个和第二个片段),并通过构建组件树完全描述Java中任何页面的整个标记(参见上面的第三个代码片段)。
现在的问题是:可以做到吗?如果是,怎么样?
答案 0 :(得分:1)
为什么不直接使用转发器:
<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);
}
}