看這篇部落格之前,請先看我的前一篇部落格:http://hw1287789687.iteye.com/blog/2113991
這篇主要講解更好的分頁方案.
先看一下效果:
檢索條件有兩個:"訂單類别","醫生",然後點選[查詢]按鈕,結果如下:

此時,我在檢索條件的"登記人"輸入"黃威",在點選[下一頁].
點選[下一頁]之前的界面:
點選[下一頁]之後的頁面:
有兩點要注意:
(a)新增的查詢條件"登記人"清空了.
(b)其他的查詢條件是原來的(點選[查詢]時的條件)
這就是我們需要的效果.
如何實作的呢?
(1)在頁面pagebottom.jsp增加了表單,并且表單中還增加了請求要素pageflag,用于區分查詢和分頁:
<input type="hidden" name="pageflag" value="not_query" >
(2)查詢使用不同的表單
此時點選[查詢]和[上一頁]送出的是不同的表單,盡管送出的action是相同的.
點選[查詢]時隻送出檢索條件,不送出分頁資訊.
點選[上一頁]時不送出檢索條件,隻送出分頁資訊,那麼從哪兒擷取原來的查詢條件呢?
session
(3)分頁時沒有送出檢索資訊,那麼如何恢複檢索條件到分頁之後的界面上呢?
從session擷取原來的檢索條件(存儲在toothorders的對象中),然後使用org.apache.commons.beanutils.beanutils 把toothorders中查詢條件複制到ordersview對象view中.
try {
toothorders2=toothorders.clone();
beanutils.copyproperties(view, toothorders2);
} catch (clonenotsupportedexception e) {
e.printstacktrace();
} catch (illegalaccessexception e) {
} catch (invocationtargetexception e) {
}
可以參考我的上一篇部落格:http://hw1287789687.iteye.com/blog/2113991
ps:部落格中使用的截圖工具是:紅蜻蜓抓圖精靈