如何使用ApacheWicket在li标记内创建链接的重复列表?

如何使用ApacheWicket在li标记内创建链接的重复列表?,wicket,repeat,Wicket,Repeat,在ApacheWicket中,我想从代码中创建一个重复的链接列表。我不确定模板应该是什么,以获得如下html结果: <li><a href="whatevenrlink1">link1</a></li> <li><a href="whatevenrlink2">link2</a></li> <li><a href="whatevenrlink3">link3</a>

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

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

  • 所以经过大量测试,这对我来说很有效。HTML应该如下所示:

    <ul>
      <ui wicket:id="LinkList"><a wicket:id="Link"><span wicket:id="Text"/></a></ui>
    </ul>
    

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


    有关这方面的许多示例,请参见。

    您可以使用ListView从代码创建链接的重复列表。ListView是一个中继器,它使列表的显示/使用变得容易。ListView包含ListItem子项。可以重新订购和删除项目,一次一个或一次多个

    例如:

    <tbody>
       <tr wicket:id="rows" class="even">
         <td><span wicket:id="id">Test ID</span></td>
         ...
    
    
    测试ID
    ...
    
    虽然这个示例是关于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()));
        }
     });
    
    添加(新列表视图(“行”,列表数据) { 公共无效填充项(最终列表项) { final UserDetails user=item.getModelObject(); 添加(新链接(“id”,user.getId()); } });
    其中listData包含每个链接的id。

    您可以使用externalLink.setBody(Model.of(“Google”))而不是使用额外的标签。
     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()));
        }
     });