[英]How to implement a pagination in Struts 2
如何在Struts 2中為客戶端顯示實現分頁,並如何將Hibernate作為持久層。
這是我到目前為止完成的代碼:
<display:table id="students" name="students" pagesize="2"
export="false" requestURI="/student">
<display:column property="studentRoll" title="Roll"
paramId="studentRoll" sortable="true" />
<display:column property="studentName" title="Name" sortable="true" />
<display:column property="studentCourse" title="Course"
sortable="true" />
<display:setProperty name="paging.banner.placement" value="bottom" />
</display:table>
沒有display
標簽,有什么方法可以實現?
有一種方法可以實現它,我會給您一些建議。 可能不是您在尋找,而是使用顯示標簽,我真的懷疑您可以實現某些無關緊要的單詞。 display標簽是一個用於簡化網絡上表格數據表示的庫,它已經足夠老,可以與Ajax等現代技術以及基於組件的腳本庫(如jQuery等)一起使用。即使我看到了ajaxified,但我仍然看到看到的僅僅是增加有問題的體系結構的復雜性。 需要在此處添加基於屬性的顯示標簽庫的性質。 創建它的目的是簡化當時的使用或開發過程。 如今,人們不再局限於定制和丑陋的解決方案。
現在看一下代碼,如果我能說這是代碼,則標記表示具有行和列的表,並且可以使用標簽,標頭,其他HTML屬性(甚至使用CSS)對它們進行自定義,但這不是這個問題。
屬性名稱表示變量,數據結構表示表格數據。 它可以是列表列表,也可以是對象集。 有什么問題,它可以迭代並具有行和列。
pagesize屬性指向每頁的記錄數。
給定的URI甚至不記得它是什么來從服務器饋送數據或只是為了轉義。
標記的末尾是橫幅廣告放置,通過屬性設置。 因此,您甚至不必設置任何代碼即可實現自定義。
現在,要在Struts2中用數據表示表,有一個
<s:iterator var="row" begin="0" value="#request.navigator.list">
標簽,列表是students
還是其他無關緊要的內容。 導航器是類似於顯示標簽中橫幅的對象,但此處不是組件。 帶有按鈕的組件導航器,我將在后面介紹。
在迭代器內部,您可能有任何內容代表該行。 但這是不可能的。
例如,可以簡單地給導航器作為組件
<s:property value="#request.navigator.bar" escapeHtml="false"/>
然后,通過SQL或HQL從數據庫中獲取列表中的數據,或者Criteria API無關緊要。 這分兩個步驟完成。 首先檢查希望返回的記錄總數。 它提供了在末尾移動且不超過頁面大小的可能性。 然后返回在頁面上表示所需的有限行數。 這些都在顯示表的操作中完成。 要執行的操作需要兩個參數,第一行和頁面大小。 如果記錄總數已更改,則也需要糾正導航器。
這就是我要回答的有關如何實現頁面導航邏輯的問題。 我試着不為它編寫很多很多代碼。
您將需要或多或少復制顯示的方式。
似乎使用displaytag可能更容易,請參見其PaginatedList接口,該接口可讓您在Hibernate中進行分頁,並讓displaytag完成所有艱苦的工作。
我建議您使用jQuery Datatable ,您需要完成以下操作:
<table id="datatable">
<tbody>
<s:iterator>
<tr><td><s:property/></td></tr>
</s:iterator>
</tbody>
</table>
<script>
$("#datatable").dataTable();
</script>
還有其他選項,例如struts2-jquery-plugin
這取決於您的需求。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.