我正在尝试在重复的 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>
但是我的片段没有添加,我收到了运行时检票口异常:
以下组件未能呈现。一个常见的问题是您在代码中添加了一个组件,但忘记在标记中引用它(因此该组件永远不会被渲染)。
为什么我不能使用项目标记 ID 作为我的片段的组件 ID?我现在可以通过在 li 上添加一个附加标签来轻松解决这个问题:
<ul><li wicket:id="listView"><div wicket:id="message"></div></li></ul>
并将标记 ID“消息”添加到片段中。但我不想要它。我只想使用已经存在的 <li> 来托管我的片段,这甚至可能吗?
多谢你们