首先要感謝zuiyanwangyue提供給我的解決方法!!!
我是采用了displaytag提供的第二種分頁(yè)方法
// 頁(yè)數(shù)的參數(shù)名
String pageIndexName = new ParamEncoder(Constants.ABSENCE_LIST)
.encodeParameterName(TableTagParameters.PARAMETER_PAGE);
// 每頁(yè)顯示的條數(shù)
int pageSize = 15;
// 當(dāng)前頁(yè)
int pageIndex = GenericValidator.isBlankOrNull(request.getParameter(pageIndexName)) ? 0 : (Integer.parseInt(request.getParameter(pageIndexName)) - 1);
// 統(tǒng)計(jì)總記錄數(shù)
int resultSize = (Integer) absMgr.getPypDepartmentAbsByTimesCount(condition[0], condition[1], condition[2]).get(0);
//獲取導(dǎo)出的狀態(tài)如果不為空.說(shuō)明點(diǎn)擊了導(dǎo)出按鈕
String exportValue = request.getParameter(TableTagParameters.PARAMETER_EXPORTING);
if (exportValue == null || exportValue.equals("")) {
// 取得當(dāng)前分頁(yè)數(shù)據(jù)
studentAbsList = absMgr.getPypDepartmentAbsByTimesSql(pageIndex, pageSize, condition[0], condition[1], condition[2]);
}else {
//獲取所有數(shù)據(jù)
studentAbsList = absMgr.fastGetDepAbs(condition);
}
//缺勤信息
request.setAttribute(Constants.ABSENCE_LIST, studentAbsList);
我覺(jué)得你說(shuō)的問(wèn)題可能和Displaytag的設(shè)計(jì)初衷有關(guān),如果是一個(gè)特殊的列表,亦即table標(biāo)簽中的partialList="true",那么Table標(biāo)簽的處理類在進(jìn)行初始化參數(shù)時(shí)(見TableTag的initParameters()方法),會(huì)做出相應(yīng)的處理使得在頁(yè)面上看到的數(shù)據(jù)和導(dǎo)出的數(shù)據(jù)條數(shù)是一樣的,它并沒(méi)有區(qū)別對(duì)待不同的媒體類型。
見TableTag的1065以及1066兩行:
PaginationHelper paginationHelper = new PaginationHelper(pageNumber, pagesize);
this.tableIterator = paginationHelper.getIterator(this.list);
如果想要Displaytag適合你的要求恐怕就要修改Displaytag的源代碼了,增加以下判斷:
//檢查當(dāng)前的媒體類型
??????????? if(MediaTypeEnum.HTML.equals(this.currentMediaType)){
??????????? PaginationHelper paginationHelper = new PaginationHelper(pageNumber, pagesize);
??????????????? this.tableIterator = paginationHelper.getIterator(this.list);
??????????? }else {
??????????? this.tableIterator = IteratorUtils.getIterator(this.list);
??????????? }
即如果是在頁(yè)面上顯示則進(jìn)行分頁(yè),否則的話就遍歷整個(gè)列表。
這樣就應(yīng)該滿足你的要求了。
幫我解決此問(wèn)題的人是zuiyanwangyue
一下是他的博客地址
http://zuiyanwangyue.iteye.com/
真的非常感謝他.因?yàn)楸救诉€是學(xué)生...代碼量不多.看了源代碼3天了,還是一點(diǎn)頭緒都沒(méi)有.
今天收到zuiyanwangyue發(fā)來(lái)的消息.嘗試改了一下源代碼.結(jié)果行了.在這里再一次感謝zuiyanwangyue.謝謝!!!
我是采用了displaytag提供的第二種分頁(yè)方法
// 頁(yè)數(shù)的參數(shù)名
String pageIndexName = new ParamEncoder(Constants.ABSENCE_LIST)
.encodeParameterName(TableTagParameters.PARAMETER_PAGE);
// 每頁(yè)顯示的條數(shù)
int pageSize = 15;
// 當(dāng)前頁(yè)
int pageIndex = GenericValidator.isBlankOrNull(request.getParameter(pageIndexName)) ? 0 : (Integer.parseInt(request.getParameter(pageIndexName)) - 1);
// 統(tǒng)計(jì)總記錄數(shù)
int resultSize = (Integer) absMgr.getPypDepartmentAbsByTimesCount(condition[0], condition[1], condition[2]).get(0);
//獲取導(dǎo)出的狀態(tài)如果不為空.說(shuō)明點(diǎn)擊了導(dǎo)出按鈕
String exportValue = request.getParameter(TableTagParameters.PARAMETER_EXPORTING);
if (exportValue == null || exportValue.equals("")) {
// 取得當(dāng)前分頁(yè)數(shù)據(jù)
studentAbsList = absMgr.getPypDepartmentAbsByTimesSql(pageIndex, pageSize, condition[0], condition[1], condition[2]);
}else {
//獲取所有數(shù)據(jù)
studentAbsList = absMgr.fastGetDepAbs(condition);
}
//缺勤信息
request.setAttribute(Constants.ABSENCE_LIST, studentAbsList);
我覺(jué)得你說(shuō)的問(wèn)題可能和Displaytag的設(shè)計(jì)初衷有關(guān),如果是一個(gè)特殊的列表,亦即table標(biāo)簽中的partialList="true",那么Table標(biāo)簽的處理類在進(jìn)行初始化參數(shù)時(shí)(見TableTag的initParameters()方法),會(huì)做出相應(yīng)的處理使得在頁(yè)面上看到的數(shù)據(jù)和導(dǎo)出的數(shù)據(jù)條數(shù)是一樣的,它并沒(méi)有區(qū)別對(duì)待不同的媒體類型。
見TableTag的1065以及1066兩行:
PaginationHelper paginationHelper = new PaginationHelper(pageNumber, pagesize);
this.tableIterator = paginationHelper.getIterator(this.list);
如果想要Displaytag適合你的要求恐怕就要修改Displaytag的源代碼了,增加以下判斷:
//檢查當(dāng)前的媒體類型
??????????? if(MediaTypeEnum.HTML.equals(this.currentMediaType)){
??????????? PaginationHelper paginationHelper = new PaginationHelper(pageNumber, pagesize);
??????????????? this.tableIterator = paginationHelper.getIterator(this.list);
??????????? }else {
??????????? this.tableIterator = IteratorUtils.getIterator(this.list);
??????????? }
即如果是在頁(yè)面上顯示則進(jìn)行分頁(yè),否則的話就遍歷整個(gè)列表。
這樣就應(yīng)該滿足你的要求了。
幫我解決此問(wèn)題的人是zuiyanwangyue
一下是他的博客地址
http://zuiyanwangyue.iteye.com/
真的非常感謝他.因?yàn)楸救诉€是學(xué)生...代碼量不多.看了源代碼3天了,還是一點(diǎn)頭緒都沒(méi)有.
今天收到zuiyanwangyue發(fā)來(lái)的消息.嘗試改了一下源代碼.結(jié)果行了.在這里再一次感謝zuiyanwangyue.謝謝!!!

關(guān)于displaytag external paging 第二種分頁(yè)方法導(dǎo)出所有數(shù)據(jù)的問(wèn)題
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
