让navigator按自己的要求呈现,可以作为wicket入门练习的好例子,比如看起来是bootstrap的pager。
让我们从wicket内置的PagingNavigation开始,通过override PagingNavigation 的 populateItem 方法更改pagingnavigation的外观。
protected void populateItem(LoopItem loopItem)
{
final int page = loopItem.getIteration();
final PagingNavigationLink link = new PagingNavigationLink("pageLink", pageableListView, page);
if (page > 0)
{
loopItem.add(new Label("separator", "|"));
}
else
{
loopItem.add(new Label("separator", ""));
}
link.add(new Label("pageNumber", String.valueOf(page + 1)));
link.add(new Label("pageLabel", "page"));
loopItem.add(link);
}
加上模板的变更:
<span wicket:id="navigation">
<span wicket:id="separator"></span>
<a wicket:id="pageLink" href="#">
<span wicket:id="pageLabel"></span><span wicket:id="pageNumber"></span>
</a>
</span>
通过override newPagingNavigationLink 方法可以更改link的行为,比如变成ajax。就像内置的AjaxPagingNavigation那样。
当然在参考源代码的基础上,也已完全自己写。但继承似乎更好一些,毕竟他们是经过深思熟虑之后组织的格式。