Wicket的DataView如何使用?

时间:2010-11-08 06:51:52

标签: java html wicket

我有一个Wicket页面,我需要在屏幕上打印我的记录。我将记录保存在我的数据库中。如何使用DataView执行此操作?我需要代码示例。

2 个答案:

答案 0 :(得分:5)

这个页面上有一个古老的例子:

https://cwiki.apache.org/WICKET/a-simple-dataview-example.html

它仍然大部分都是有效的,唯一改变的是当前版本的wicket支持泛型。所以这是该页面代码的更新源:

Java代码:

public class Sub1Page extends WebPage{

    private static final long serialVersionUID = 1L;

    public Sub1Page(){

        Contact contact = null;
        final List<Contact> list = new ArrayList<Contact>();

        char character;

        // a - z
        for(int i = 97; i < 123; i++){
            character = (char) i;
            contact = new Contact(String.valueOf(character));
            list.add(contact);
        }

        final DataView<Contact> dataView =
            new DataView<Contact>("simple", new ListDataProvider<Contact>(list)){

                private static final long serialVersionUID = 1L;

                @Override
                public void populateItem(final Item<Contact> item){
                    final Contact user = item.getModelObject();
                    item.add(new Label("id", user.getId()));
                }
            };

        dataView.setItemsPerPage(10);

        add(dataView);

        add(new PagingNavigator("navigator", dataView));
    }

}

HTML代码(未更改):

<wicket:extend>

<table cellspacing="0" class="dataview">
    <tbody>
       <tr wicket:id="simple">
         <td><span wicket:id="id">Test ID</span></td>
       </tr>
    </tbody>
</table>

<div wicket:id="navigator"></div>

</wicket:extend>

答案 1 :(得分:0)

DataView是AbstractDataView的基本实现。数据视图旨在通过利用IDataProvider充当数据库和数据视图之间的接口,使从数据库填充重复视图变得非常简单。

Example:

 <tbody>
   <tr wicket:id="rows">
     <td><span wicket:id="id">Test ID</span></td>
     ...

虽然此示例与HTML表有关,但DataView并不仅限于HTML表。可以使用DataView呈现任何类型的列表。

相关的Java代码:

add(new DataView<UserDetails>("rows", dataProvider)
 {
    public void populateItem(final Item<UserDetails> item)
    {
            final UserDetails user = item.getModelObject();
            item.add(new Label("id", user.getId()));
    }
 });
相关问题