2012-07-19 25 views
0

我正在嘗試使用速度PagerTool將分頁添加到我的速度模板中。我遵循他們網站上的指示,甚至使用他們的示例代碼。我填充尋呼機項目,並在轉發到我的模板之前,在我的控制器中設置每個頁面的項目數量。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]

下面是我使用的代碼我的虛擬模板:

#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 

我已經遍尋全球的答案,但還沒有找到任何工程呢。請幫忙!

回答

0

看起來您正在手動配置該工具而不是讓VelocityTools執行此操作。這很好,但是你必須調用(在java中)pager.setup(request);在每個請求上,以便它知道你在哪個頁面上以及所有這些。

+0

我寧願讓VelocityTools自動爲我配置它,但這是我能找到的唯一方法。你能告訴我如何讓Velocity爲我處理它。 所以,我現在的方式,我需要調用pager.setup並每次單擊鏈接時傳遞請求對象? – ddogg 2012-07-20 15:19:06

+0

VelocityTools有一個展示應用程序,演示如何自動管理它。是的,它需要知道每個請求,因爲它是一個請求範圍工具。 – 2012-07-24 16:52:27

0

我正在使用速度&速度工具2.0與SSH。當我使用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。