在Apache Wicket中,我想从代码中创建一个重复的链接列表。我不确定模板应该是什么样的,以获得如下所示的html结果:
<li><a href="whatevenrlink1">link1</a></li>
<li><a href="whatevenrlink2">link2</a></li>
<li><a href="whatevenrlink3">link3</a></li>
答案 0 :(得分:8)
经过多次测试后,这对我有用。 HTML应如下所示:
<ul>
<ui wicket:id="LinkList"><a wicket:id="Link"><span wicket:id="Text"/></a></ui>
</ul>
然后重复的视图代码将是:
RepeatingView view = new RepeatingView("LinkList");
add(view);
WebMarkupContainer list = new WebMarkupContainer(view.newChildId());
ExternalLink externalLink = new ExternalLink("Link", "http://www.google.com");
externalLink.add(new Label("Text","Google"));
list.add(externalLink);
view.add(list);
答案 1 :(得分:2)
您可以使用ListView从代码创建重复的链接列表。 ListView是一个转发器,可以轻松显示/使用列表。 ListView包含ListItem子项。可以一次一个地或一次一个地重新排序和删除项目。
示例:
<tbody>
<tr wicket:id="rows" class="even">
<td><span wicket:id="id">Test ID</span></td>
...
虽然这个例子是关于HTML表的,但ListView并不仅限于HTML表。可以使用ListView呈现任何类型的列表。
相关的Java代码:
add(new ListView<UserDetails>("rows", listData)
{
public void populateItem(final ListItem<UserDetails> item)
{
final UserDetails user = item.getModelObject();
item.add(new Link("id", user.getId()));
}
});
其中listData包含每个链接的ID。
答案 2 :(得分:0)
如何实现这类事情有很多选择,但它们都使用某种转发器。
有关此问题的许多示例,请参阅wicket repeater examples。