繰り返しliコンポーネント内にフラグメントを追加しようとしています:
<ul>
<li wicket:id="listView">HERE GOES MY FRAGMENT</li>
</ul>
リストビューに入力するコードは次のとおりです。
@Override
protected void populateItem(final org.apache.wicket.markup.repeater.Item<Message> item) {
Message msg = item.getModelObject();
log.info("Adding message fragment to markup: " + item.getMarkupId());
item.add(new MessageFragement(item.getMarkupId(), "messageFragment", this, msg));
}
生成された予期されるコードは次のとおりです。
<ul>
<li .... wicket:id="listView></li>
<li .... wicket:id="listView></li>
....
</ul>
しかし、フラグメントが追加されず、Runtime wicket 例外が発生します。
以下のコンポーネントはレンダリングに失敗しました。よくある問題は、コードにコンポーネントを追加したのに、マークアップでそれを参照するのを忘れていることです (したがって、コンポーネントは決してレンダリングされません)。
アイテム マークアップ ID をフラグメントのコンポーネント ID として使用できないのはなぜですか? これは、li に追加のタグを追加することで簡単に解決できるようになりました。
<ul><li wicket:id="listView"><div wicket:id="message"></div></li></ul>
そして、マークアップ ID「メッセージ」をフラグメントに追加します。しかし、私はそれをしたくありません。既に存在する <li> を使用してフラグメントをホストしたいだけですが、それは可能ですか?
みんなありがとう