I'm trying to create a ListView
or a Repeater
in Wicket 6
in order to output a list of items like this:
<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>
...
I tried to use a ListView like this:
<div wicket:id="listViewItems">
<div class="header" wicket:id="header"></div>
<div class="content" wicket:id="content"></div>
</div>
and populate it like this:
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")));
}
});
The output I get is:
<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>
The problem is this: I don't want those outer divs that wrap every header/content couple. I want the list to be "flat" like in the example I made above.
How can I achieve this?
You can give
setRenderBodyOnly(true)
forListView
or usewicket:container
in HTML instead ofdiv
like below