2013-01-02 81 views
1

我需要使用Struts2作爲客戶端顯示和hibernate作爲持久層實現尋呼解決方案。由於我的數據庫有很多記錄,我只需要在給定時間加載特定數量的記錄(每頁6條記錄),並在結果表中向用戶顯示分頁號。當用戶點擊一個特定的數字時,我需要從數據庫中提取特定的數據並在struts UI中進行更新。 I can see many examples 它需要整個數據列表來創建顯示界面。無論如何,我可以使用這種方法來實現我的要求嗎?如果不是,任何人都可以告訴我一個實現這個的例子嗎?在struts 2中尋呼

+0

你用什麼來顯示分頁數據?用':iterator'或者某種插件? – Jaiwo99

+0

「爲客戶端顯示」你需要實現一個服務,是json足夠還是你需要xml? – Quaternion

回答

2

的問題可以通過添加下列屬性由標籤表來解決。 partialList="true"size="resultSize"。這裏resultSize是您分配操作類中結果總行數的變量。 More information can be found here

0

使用Hibernate可以指定類似

if (offset >= 0) 
{ 
    query.setFirstResult(offset); 
} 
if (size > 0) 
{ 
    query.setMaxResults(size); 
} 

所以每頁的點擊數就可以從數據庫中獲取很多的記錄。

+0

我不問在休眠方面如何做到這一點。這已經實施。我需要知道如何使用struts2來顯示它,就像在我的問題 – Shanaka

+0

中問的一樣。你的問題似乎並沒有表明Hibernate方面已經完成,並且你把這個問題標記爲Hibernate,所以看起來公平的是,有些人會試圖告訴你如何在Hibernate中做到這一點。 –

1

如果妳想要在同一時間獲取只有6的結果,使用:

Query query = session.createQuery("from EntityName"); 
query.setMaxResults(6); 

此外,對於UI u可以使用displaytag。它具有內置的分頁功能。另外,如果你設置pagesize =「6」並設置partialList =「true」,它一次只能讀取6個結果。我想,也沒有必要使用setMaxResults()方法。

希望它能幫助:)

+0

這不起作用。如果我刪除setMaxResults(6),那麼它會加載每條記錄。 – Shanaka

+0

哦忘了...你還需要設置排序=「外部」 指的是這個問題http://stackoverflow.com/questions/3888367/display-tag-pagination-problem並通過chanokim回答。雖然答案本來可以簡單得多,但它仍然應該起作用。要點是你應該實現PaginatedList並且應該使用2個方法setMaxResults()和setFirstResult()。我只用jdbc和sql使用displaytag,沒有任何分頁問題。請回復它是如何去的。 –