2010-11-08 3 views
2

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

ответ

5

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

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

большое спасибо. – user500129

2

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())); 
    } 
}); 
Смежные вопросы