繰り返し出力 ~ 一覧表示(改ページ付き)

2018年2月24日

この記事は最初の投稿日から18年経過しています。内容が古い可能性があります。

ListView にページングの機能が加わったのが、PageableListView とのこと。

よく検索エンジンの最下部に表示されるページを切り替えるあれです。

前回のにページングの機能を付けてみます。

深い意味はないのですが、リストをTABLE にしてスタイルシートまでつけています。

ToDoListPage.html


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<title>やること</title>
<style type="text/css">
table {
border-style: solid;
border-width: 1px;
}
th {
border-style: solid;
border-width: 0px 0px 1px 0px;
text-align: left;
}
td.navigator {
text-align: right;
border-style: solid;
border-width: 1px 0px 0px 0px;
}
</style>
</head>
<body>
<table>
<tr>
<th></th>
<th>やること</th>
<th>コメント</th>
</tr>
<tr wicket:id="todoList">
<td><input type="checkbox" wicket:id="chk" /></td>
<td><span wicket:id="todo">やること</span></td>
<td><span wicket:id="comment">コメント</span></td>
</tr>
<tr>
<td class="navigator" colspan="3"><span wicket:id="navigator" /></td>
</tr>
</table>
</body>
</html>

ToDoListPage.java


package todo;
import java.util.List;
import wicket.markup.html.WebPage;
import wicket.markup.html.basic.Label;
import wicket.markup.html.form.CheckBox;
import wicket.markup.html.list.ListItem;
import wicket.markup.html.list.PageableListView;
import wicket.markup.html.navigation.paging.PagingNavigator;
import wicket.model.Model;
import wicket.model.PropertyModel;
public class ToDoListPage extends WebPage {
public ToDoListPage() {
final PageableListView listView;
add(listView = new PageableListView("todoList", new PropertyModel(this, "toDo"), 3) {
protected void populateItem(ListItem item) {
ToDo todo = (ToDo) item.getModelObject();
item.add(new CheckBox("chk", new Model(new Boolean(todo.isChk()))));
item.add(new Label("todo", todo.getTodo()));
item.add(new Label("comment", todo.getComment()));
}
});
add(new PagingNavigator("navigator", listView));
}
public List getToDo() {
ToDoListData toDoListData = new ToDoListData();
return toDoListData.findAll();
}
}

PagingNavigator を new して add しています。これが、HTML 上の


<span wicket:id="navigator" />

に対応しているようです。

PageableListView の3つめの引数が1ページに表示するアイテム数。ここでは3アイテムにしています。

ToDoListData クラスのダミーデータを増やして実行すると、

f:id:toshyon:20060613232634p:image

こんな感じで、2ページ目へのナビゲーションが生まれました。

う~ん。なかなか動作の核心の理解まで進まないですが、色々作っていたらいつかきっとわかるだろうと思いつつ。

Dev,Wicket

Posted by toshyon