


下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、pager-taglib是java中一個用于分頁的小的框架。下面簡單介紹一下它 的具體使用。一、環(huán)境的搭建:將 pager-taglib-2.0.war 包拷貝到 Tomcat 的 webapps 下。啟動 Tomcat后會將其解壓成pager-taglib-2.0文件夾。從解壓文件中的lib目錄下拷貝pager-taglib.jar包到項目的lib下。 在JSP頁面中使用taglib指令引入pager-taglib標(biāo)簽庫。二、重要參數(shù)的說明:Offset :傳過來的值是偏移量,是選擇的頁面的頁數(shù)。比如你的記錄/頁pageSize=3,那么傳過來的offset應(yīng)該如下處理:offset/3+1
2、 這 樣得到的就是要生成的頁數(shù)!pg:pager設(shè)置分頁的總體參數(shù)url:分頁的鏈接根地址,pager標(biāo)簽會在這個鏈接的基礎(chǔ)上附加分 頁參數(shù),但不允許像給頁面跳轉(zhuǎn)的url那樣,在后面直接添加參數(shù),而 參數(shù)的傳遞時需要使用pg:param來指定。items:總記錄數(shù),pager標(biāo)簽正是根據(jù)這個值來計算分頁參數(shù),很 重要。maxPageltems:每頁顯示的行數(shù),默認(rèn)為 10maxindexPages:在循環(huán)輸出頁碼的時候,最大輸出多少個頁碼, 默認(rèn)是10pg:first第一頁的標(biāo)簽pg:pre 上一頁標(biāo)簽pg:next 下一頁標(biāo)簽pg:last最后一頁標(biāo)簽pg:pages 循環(huán)輸出頁碼信息對于上
3、面的標(biāo)簽都有類似的export變量:pageUrl -分頁鏈接URL地址(最重要的export參數(shù))pageNumber-頁碼firstItem 寸應(yīng)頁第一行的索引值lastitem -對應(yīng)頁最后一行的索引值三、項目中使用 pager-taglib :1、引入對應(yīng)的標(biāo)簽庫:html view pla in copy1.<span style ="font-size:18px"><%aglibprefix="pg" uri -'2.3.gs/navigation/pager"%>v% taglibprefix =&
4、quot;c" uri="%></span>2、使用標(biāo)簽布置頁面:| html view pla in copy1. <pg:pager url ="org.do" items ="$pm.total" export ="currentPageNumber=pageNumber" >2.2. <pg:paramname pg:paramname ="parentId" />4.3. <pg:first>6.4. <ahref ahref
5、 ="$pageUrl">首頁 </a>8.9.</pg:first>10.11.vpg:prev>12.13.vahref ahref ="$pageUrl ">前頁 </a>14.15.</pg:prev>16.17.<pg:pages>18.19.<c:choose>20.21.<c:whentest c:whentest ="$currentPageNumber eq pageNumber " >22.23.vfontcolo
6、r fontcolor ="red" >$pageNumber </font>24.25.</c:when>26.27.<c:otherwise>28.29.vahref ahref ="$pageUrl ">$pageNumber </a>30.31.</c:otherwise>32.33.</c:choose>34.35.</pg:pages>36.37.<pg:next>38.39.vahref ahref ="$pageUrl &
7、quot;>后頁 </a>40.41.</pg:next>42.43.vpg:last>44.45.vahref ahref ="$pageUrl ">尾頁 v/a>46.47.v/pg:last>48.49.v/pg:pager>需要注意的是:很多時候,在不同的頁面中跳轉(zhuǎn)的時候, 需要傳遞一個id,在保持這個數(shù)據(jù)的時候,不能直接跟在url后面,需要使用<pg:paramname二"parentld"/> 來傳遞。為了給當(dāng)前頁添加一些特殊的效果,使用curre ntPageNumbe
8、r給pageNumber 指定了一個別名,這是為了 test="$currentPageNumber eq pageNumber 判斷的需要。Items表示:返回來的總記錄數(shù),由此,該框架采用的是假分頁。url :指明了請求的入口地址,是與struts的配置文件struts-config.xml中的配置相關(guān)聯(lián)。3、設(shè)置offset禾口 pagesize 變量的值:比較好的做法是在系統(tǒng)變量類中,將其設(shè)置到ThreadLocal變量中這里將其圭寸裝到了 SystemContext類中:java view pla in copy1.<span style= "font-si
9、ze:18px">publicclass SystemContext 2.3.privatestatic ThreadLocal offset =new ThreadLocal();4.5.privatestatic ThreadLocal pagesize =new ThreadLocal();6.7.8.publicstaticint getOffset()9.10.Integeros = (Integer)offset.get();11.12.if (os= null )13.14.return。;15.16.returnos;3.2
10、7.58.59.publicstaticvoid setOffset( int offsetvalue)offset.set(offsetvalue);publicstaticvoid removeOffset()offset.remove();publicstaticint getPagesize()Integerps = (lnteger)pagesize.get();if (ps= null
11、)returnlnteger.MAX_VALUE;returnps;publicstaticvoid setPagesize( int pagesizevalue)pagesize.set(pagesizevalue);publicstaticvoid removePagesize()pagesize.remove();v/span>4、定義分頁過濾器PagerFilter :該過濾器調(diào)用 SystemContext類的方法,給offset和pagesize變量賦值java view pla in copy..5.16.17
12、.3.34.35.Filter <span style= "font-size:18px" >publicclass PagerFilterimplementsOverridepublicvoid destroy。Overridepublicvoid doFilter(ServletRequest request, ServletResponseresponse,FilterChain chain)throws IOException, ServletExceptionH
13、ttpServletRequest httpRequest = (HttpServletRequest)request;SystemContext.setOffset(getOffset(httpRequest);SystemContext.setPagesize(getPagesize(httpRequest);try chain.doFilter(request, response); finally /清空ThreadLocal 中的值SystemContext.removeOffset();SystemContext.removePagesize();9.40.41
14、.9.70.protectedint getOffset(HttpServletRequest request) int offset =0;try offset = lnteger.parselnt(request.getParameter( catch (NumberFormatException ignore) return offset;protectedint getPagesize(HttpServletRequest
15、request)return 10;Overridepublicvoid init(FilterConfig arg0)throwsv/span>"pager.offset" );ServletException offset = In teger.parsel nt(equest.getPaamete("page.offset");參數(shù)是固定的。中的..5.I..2.5、將過濾器配置到 web.xml文件中,使之生效:html view
16、pla in copyvfilter><filter-name> pagerFilter </filter-name></filter-class><filter-class> com.bjsxt.oa.web.PagerFilter</filter><filter-mapping><filter-name>pagerFilter </filter-name><url-pattern>/* </url-pattern></filter-mapping>6、定
17、義封裝不同實體類數(shù)據(jù)的分頁類PagerModel :該類使用List封裝了返回的不同實體類型。這里如果使用泛型,可以在編程的時候檢查類型及早給出提示,不使用也是可以的,根據(jù)個人的編程習(xí)慣吧。java view pla in copypublicclass PagerModel/* 總記錄數(shù)*/ privateinttotal;9./*當(dāng)前頁結(jié)果集*/private List da
18、tas;public List getDatas() returndatas;publicvoid setDatas(List datas) this .datas = datas;publicint getTotal() returntotal;publicvoid setTotal(int total) this .total = total;7、抽象分頁服務(wù)類AbstractMa nager在業(yè)務(wù)邏輯的實現(xiàn)類中,只是傳入的查詢語句和參數(shù)不同,所以,可以對這個變化的部分抽象。..1.22.2
19、8.39.40.java view pla in copypublicclass AbstractManagerextends HibernateDaoSupport /* 私有的給查詢語句賦值的方法* param query* param hql* param params*/publicvoid setParams(Query query,String hql,Object params)if (params!= null && params.length>0)for (int
20、i = 0;i<paramsength;i+) query.setParameter(i, paramsi);/*分頁公共方法開始*public PagerModel searchPaginated(String hql)return searchPaginated(hql, null ,SystemContext.getOffset(),SystemConte xt.getPagesize();return searchPaginated(hql, new Objectparam,SystemContext.getOffse t(),SystemContext.getPagesize(
21、);public PagerModel searchPaginated(String hql,Object params)return searchPaginated(hql,params,SystemContext.getOffset(),SystemCon text.getPagesize();public PagerModel searchPaginated(String hql,int offset, int pagesize)return searchPaginated(hql, null ,offset,pagesize);agesize)public PagerModel sea
22、rchPaginated(String hql,Object obj,int offset, int preturn searchPaginated(hql, new Objectobj,offset,pagesize);/*根據(jù)HQL語句進(jìn)行分頁查詢param hql HQL 語句param params HQL 語句帶的多個參數(shù)值param offset從第幾條記錄開始查詢7
23、.1.param pagesize每頁顯示多少行82.83.84.* return*/85.public PagerModel searchPaginated(String hql,Object params,int offset,intpagesize)00022.123.124./獲取記錄總數(shù)String countH
24、ql = getCountQuery(hql);Query query = getSession().createQuery(countHql);if (params != null && paramsength >0)for (int i= 0; i<params.length; i+) query.setParameter(i, paramsi);int total = (Long)query.uniqueResult().intValue();/獲取當(dāng)前頁的結(jié)果集query = getSession().createQuery(hql);if (params
25、!= null && paramsength >0)for (int i= 0; i<params.length; i+) query.setParameter(i, paramsi);query.setFirstResult(offset); query.setMaxResults(pagesize);67.168.List datas = query.list();PagerModel pm =new PagerModel();pm.setTotal(total);pm.setDatas(datas);return pm;/* 根據(jù)HQL語句,獲得查找總記錄數(shù)的HQL語句
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 災(zāi)害救援中的志愿者管理考核試卷
- 信息化背景下內(nèi)陸?zhàn)B殖產(chǎn)業(yè)發(fā)展趨勢分析考核試卷
- 顆粒材料在農(nóng)業(yè)中的應(yīng)用研究考核試卷
- 印刷品包裝的市場調(diào)研與分析方法考核試卷
- 應(yīng)急演練效果評估與應(yīng)急演練方案調(diào)整策略研究考核試卷
- 齊齊哈爾高等師范??茖W(xué)校《電影大師研究》2023-2024學(xué)年第一學(xué)期期末試卷
- 齊魯理工學(xué)院《刺法灸法學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 中央美術(shù)學(xué)院《環(huán)境統(tǒng)計學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 重慶財經(jīng)職業(yè)學(xué)院《口腔頜面醫(yī)學(xué)影像診斷學(xué)實驗》2023-2024學(xué)年第一學(xué)期期末試卷
- 智慧社區(qū)地下車庫車位產(chǎn)權(quán)轉(zhuǎn)讓協(xié)議
- 簡易精神狀態(tài)檢查量表(MMSE)
- 《教育學(xué)原理》馬工程教材第二章教育與社會發(fā)展
- GB/T 10095.2-2023圓柱齒輪ISO齒面公差分級制第2部分:徑向綜合偏差的定義和允許值
- 西藏農(nóng)村公路管理辦法
- 考研英語5500詞匯大綱
- 廣州市白云廣附實驗學(xué)校招生數(shù)學(xué)真題卷
- 結(jié)構(gòu)化面試經(jīng)典100題及答案
- 20232023期末A 統(tǒng)計學(xué)考試卷 首經(jīng)貿(mào)
- 福建省福州市福建師大附中2023年自主招生樣卷--數(shù)學(xué)試卷
- GB/T 16622-2022壓配式實心輪胎規(guī)格、尺寸與負(fù)荷
- GB/T 3274-2017碳素結(jié)構(gòu)鋼和低合金結(jié)構(gòu)鋼熱軋鋼板和鋼帶
評論
0/150
提交評論