1

我对 Wicket 很陌生,所以我可能在这里犯了一个可怕的错误。

我正在尝试将列表视图添加到列表视图,但收到错误消息,我知道此错误与组件的层次结构有关,因为 java 文件和 html 文件的层次结构不同。我只是不知道如何解决它。有人可以给我一些指示吗?

相关代码(设置列表视图):

final ListView<MenuItem> subListView = new ListView<MenuItem>("menuSubView", new ArrayList<MenuItem>()) {
    private static final long serialVersionUID = 1L;

    @Override
    protected void populateItem(ListItem<MenuItem> item) {
        //DO SOMETHING
    }
};

subListView.setRenderBodyOnly(true);
subListView.setReuseItems(true);

ListView<MenuItem> listView = new ListView<MenuItem>("menuView", menuItems) {
    private static final long serialVersionUID = 1L;

    @Override
    protected void populateItem(ListItem<MenuItem> item) {
    final MenuItem menuItem = item.getModelObject();
    AjaxLink<MenuItem> aLink =  new AjaxLink<MenuItem>("menuItemLink") {
                private static final long serialVersionUID = 1L;

                @Override
                public void onClick(AjaxRequestTarget target) {
                    if(target != null) {
                        //DO SOMETHING
                    }
                }
    };

    aLink.add(new Label("linkText", menuItem.getText()));
    item.add(aLink);
    item.add(subListView);
}

html:

<wicket:panel>
    <ul wicket:id="menuView">
        <li>
            <a href="#" wicket:id="menuItemLink" >
                <span wicket:id="linkText"></span>
            </a>
                <ul wicket:id="menuSubView">
                    <li>
                        <div wicket:id="subItemText"></div>
                    </li>
                </ul>
        </li>
    </ul>

错误:

无法在 [ListItem [Component id = 0]] 中找到 ID 为“menuSubView”的组件预期:“viewerPanel:optionsMenu:menuView:0.menuSubView”。发现名称相似:'viewerPanel:optionsMenu:menuView:1:menuSubView' MarkupStream: [markup = file:.../panels/menu/SimpleMenu.html

  • </li> --> , index = 9, current = '' (line 0, column 0)] at org.apache.wicket.markup.MarkupStream.throwMarkupException(MarkupStream.java:526) at org.apache.wicket。 MarkupContainer.renderNext(MarkupContainer.java:1435) ....

    预先感谢您的回复。

    亲切的问候,布拉姆

    4

    0 回答 0