私は 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 = '' (行 0、列 0)] org.apache.wicket.markup.MarkupStream.throwMarkupException(MarkupStream.java:526) at org.apache.wicket. MarkupContainer.renderNext(MarkupContainer.java:1435) ....
返信ありがとうございます。
よろしく、ブラム