Wicket ListView:不输出 "container" 标签
Wicket ListView: do not output "container" tag
我正在尝试在 Wicket 6
中创建 ListView
或 Repeater
以输出如下项目列表:
<div class="header">My first header</div>
<div class="content">My first content</div>
<div class="header">My second header</div>
<div class="content">My second content</div>
<div class="header">My third header</div>
<div class="content">My third content</div>
...
我试过像这样使用 ListView:
<div wicket:id="listViewItems">
<div class="header" wicket:id="header"></div>
<div class="content" wicket:id="content"></div>
</div>
并像这样填充它:
add(new ListView<MyItem>("listViewItems", myListOfItems) {
@Override
protected void populateItem(ListItem<MyItem> item) {
item.add(new Label("header", new PropertyModel(item.getModel(), "header")));
item.add(new Label("content", new PropertyModel(item.getModel(), "content")));
}
});
我得到的输出是:
<div>
<div class="header">My first header</div>
<div class="content">My first content</div>
</div>
<div>
<div class="header">My second header</div>
<div class="content">My second content</div>
</div>
<div>
<div class="header">My third header</div>
<div class="content">My third content</div>
</div>
问题是这样的:我不想要那些包裹每个header/content对的外部div。我希望列表是 "flat" 就像我上面的例子一样。
我怎样才能做到这一点?
您可以为 ListView
提供 setRenderBodyOnly(true)
或在 HTML 中使用 wicket:container
而不是 div
喜欢下面
<wicket:container wicket:id="listViewItems">
<div class="header" wicket:id="header"></div>
<div class="content" wicket:id="content"></div>
</wicket:container>
我正在尝试在 Wicket 6
中创建 ListView
或 Repeater
以输出如下项目列表:
<div class="header">My first header</div>
<div class="content">My first content</div>
<div class="header">My second header</div>
<div class="content">My second content</div>
<div class="header">My third header</div>
<div class="content">My third content</div>
...
我试过像这样使用 ListView:
<div wicket:id="listViewItems">
<div class="header" wicket:id="header"></div>
<div class="content" wicket:id="content"></div>
</div>
并像这样填充它:
add(new ListView<MyItem>("listViewItems", myListOfItems) {
@Override
protected void populateItem(ListItem<MyItem> item) {
item.add(new Label("header", new PropertyModel(item.getModel(), "header")));
item.add(new Label("content", new PropertyModel(item.getModel(), "content")));
}
});
我得到的输出是:
<div>
<div class="header">My first header</div>
<div class="content">My first content</div>
</div>
<div>
<div class="header">My second header</div>
<div class="content">My second content</div>
</div>
<div>
<div class="header">My third header</div>
<div class="content">My third content</div>
</div>
问题是这样的:我不想要那些包裹每个header/content对的外部div。我希望列表是 "flat" 就像我上面的例子一样。
我怎样才能做到这一点?
您可以为 ListView
提供 setRenderBodyOnly(true)
或在 HTML 中使用 wicket:container
而不是 div
喜欢下面
<wicket:container wicket:id="listViewItems">
<div class="header" wicket:id="header"></div>
<div class="content" wicket:id="content"></div>
</wicket:container>