This does assume you have a "Base Page".
Sub1Page.java
import java.io.Serializable; import java.util.ArrayList; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.navigation.paging.PagingNavigator; import org.apache.wicket.markup.repeater.Item; import org.apache.wicket.markup.repeater.data.DataView; import org.apache.wicket.markup.repeater.data.ListDataProvider; import org.apache.wicket.model.IModel; import org.apache.wicket.model.Model; public class Sub1Page extends BasePage { public Sub1Page() { Contact contact = null; ArrayList list = new ArrayList(); 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 dataView = new DataView("simple", new ListDataProvider( list)) { public void populateItem(final Item item) { final Contact user = (Contact) item.getModelObject(); item.add(new Label("id", user.getId())); } }; dataView.setItemsPerPage(10); add(dataView); add(new PagingNavigator("navigator", dataView)); } } class Contact implements Serializable { private final String id; public Contact(String id) { this.id = id; } public String getId() { return id; } }
Sub1Page.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>