我对 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 中任何页面的整个标记(参见上面的第三个代码片段)。

现在的问题是:能做到吗?如果是,怎么办?

请您参考如下方法:

为什么不直接使用中继器:

<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); 
    } 
}  


评论关闭
IT源码网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!