Как используется DataView от Wicket? - PullRequest
2 голосов
/ 08 ноября 2010

У меня есть страница Wicket, и мне нужно распечатать свои записи на экране.Я храню записи в своей базе данных.Как я могу сделать это с DataView?Мне нужны примеры кода.

Ответы [ 2 ]

5 голосов
/ 08 ноября 2010

На этой странице есть древний пример:

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

Это все еще в основном верно, единственное, что изменилось, это то, что текущие версии калитки поддерживают дженерики. Итак, вот обновленный источник кода с этой страницы:

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>
0 голосов
/ 25 декабря 2012

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()));
    }
 });
...