2

在 Apache Wicket 中,我想从代码中创建一个重复的链接列表。我不确定模板应该是什么才能获得如下所示的 html 结果:

<li><a href="whatevenrlink1">link1</a></li>
<li><a href="whatevenrlink2">link2</a></li>
<li><a href="whatevenrlink3">link3</a></li>
4

3 回答 3

9

所以经过大量测试后,这对我有用。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);
于 2012-12-23T16:58:03.957 回答
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。

于 2012-12-27T12:51:06.963 回答
0

如何实现这类事情有很多选择,但它们都使用某种中继器。

有关这方面的许多示例,请参见检票口中继器示例

于 2012-12-23T17:03:42.993 回答