我可以在标记页面中的不同 parents 下添加相同的 wicket 组件吗

Can I add same wicket component under differrent parents in a markup page

<table>
<tr>
    <td>
        <div wicket:id="id1">                        
                <div wicket:id="draggable" />
        </div>
    </td>   
    <td>
        <div wicket:id="id2">                        
                <div wicket:id="draggable"/>
        </div>
    </td> 
</tr>      
</table>

考虑上面的标记,在 java 部分我有类似以下内容..

WebMarkupContainer con1 = new WebMarkupContainer("id1");
WebMarkupContainer con2 = new WebMarkupContainer("id2");

Draggable draggable = new Draggable<Void>("draggable");

con1.add(draggable)
con2.add(draggable)

但是当我浏览该页面时,我收到一个 Wicket 异常,指出 "con1" 没有 "draggable"。

我错过了什么吗?还是根本错了?我知道不可能在相同的 parent 下添加相同的标记。有没有类似的正确方法来实现?

此外,我的 objective 是创建一个 Draggable 组件,它一次可以并行拖动两个项目。

将具有父级的子组件添加到另一个父级会将其从第一个父级中删除并将其添加到第二个父级中。因此例外。

您需要创建两个单独的 Draggable 实例。

通常可拖动行为是通过 Wicket Behavior 实现的。您可以通过这种方式重用非 Ajax 行为,即您可以将相同的实例添加到多个组件。