Velocity PagerTool在我的分页中创建了错误的链接

时间:2012-07-19 17:53:39

标签: java pagination velocity

我正在尝试使用速度PagerTool为我的力度模板添加分页。我按照他们网站上的说明,甚至使用了他们的示例代码。在转发到我的模板之前,我填充了寻呼机项目并设置了控制器中每页的项目数。

当我导航到该页面时,一切“看起来”都像是有效的,但是,当我点击分页编号时它不起作用。我知道我的项目已经发送到寻呼机,因为它正确地显示了页面上的项目。

分页看起来像这样: < 1 2 3 4 5 6>

当我点击1时,它会刷新页面并显示页面的一组不同值。当我点击大于1的任何东西时,它会中断。有什么想法吗?

我猜我要么没有正确使用链接(即使我按照他们说的那样完成),或者我的控制器中没有正确填充的东西。

这是我在控制器中的内容:

PagerTool pager = new PagerTool();
pager.setItemsPerPage(10);
pager.setItems(myListOfItems);
request.setAttribute("pager", pager);           
request.setAttribute("new.items", myListOfItems);

我使用了他们在文档中提供的示例中的代码:[PagerTool] [1]

这是我在我的vm模板中使用的代码:

   #if( $pager.hasItems() )
   Showing $!pager.pageDescription<br>
     #set( $i = $pager.index )
     #foreach( $item in $pager.page )
       ${i}. $!item <br>
       #set( $i = $i + 1 )
     #end
     <br>
     #if ( $pager.pagesAvailable > 1 )
       #set( $pagelink = $link.self.param("show",$!pager.itemsPerPage) )
       #if( $pager.prevIndex )
           <a href="$pagelink.param('index',$!pager.prevIndex)">Prev</a>
       #end
       #foreach( $index in $pager.slip )
         #if( $index == $pager.index )
           <b>$pager.pageNumber</b>
         #else
           <a href="$pagelink.param('index',$!index)">$!pager.getPageNumber($index)</a>
         #end
       #end
       #if( $pager.nextIndex )
           <a href="$pagelink.param('index',$!pager.nextIndex)">Next</a>
       #end
     #end
   #else
   No items in list.
   #end

我已经搜遍了所有的答案,但还没有找到任何有用的东西。请帮忙!

2 个答案:

答案 0 :(得分:0)

看起来您手动配置工具而不是让VelocityTools这样做。没关系,但是你必须调用(在java中)pager.setup(request);在每个请求上,以便它知道您所在的页面以及所有这些。

答案 1 :(得分:0)

我正在使用速度&amp;使用SSH的速度工具2.0。我使用PagerTool和LinkTool时遇到了问题。我无法生成正确的分页链接。这是我的代码:

  Page<User> userList = (Page<User>) userService.getUserList(user, pageInfo);
    PagerTool pager = new PagerTool();
    pager.setItemsPerPage(1);
    ArrayList list = new ArrayList();
    list.addAll(userList.getPageElements());
    pager.setItems(list);
    ServletActionContext.getRequest().setAttribute("new.items", list);
    ActionContext.getContext().put("pager", pager);

我不知道如何使用LinkTool。