天天看點

java web 分頁詳解2

看這篇部落格之前,請先看我的前一篇部落格:http://hw1287789687.iteye.com/blog/2113991

這篇主要講解更好的分頁方案.

先看一下效果:

檢索條件有兩個:"訂單類别","醫生",然後點選[查詢]按鈕,結果如下:

java web 分頁詳解2

 此時,我在檢索條件的"登記人"輸入"黃威",在點選[下一頁].

點選[下一頁]之前的界面:

java web 分頁詳解2

 點選[下一頁]之後的頁面:

java web 分頁詳解2

 有兩點要注意:

(a)新增的查詢條件"登記人"清空了.

(b)其他的查詢條件是原來的(點選[查詢]時的條件)

這就是我們需要的效果.

如何實作的呢?

(1)在頁面pagebottom.jsp增加了表單,并且表單中還增加了請求要素pageflag,用于區分查詢和分頁:

java web 分頁詳解2

<input type="hidden" name="pageflag" value="not_query" >

(2)查詢使用不同的表單

此時點選[查詢]和[上一頁]送出的是不同的表單,盡管送出的action是相同的.

點選[查詢]時隻送出檢索條件,不送出分頁資訊.

點選[上一頁]時不送出檢索條件,隻送出分頁資訊,那麼從哪兒擷取原來的查詢條件呢?

session

java web 分頁詳解2

(3)分頁時沒有送出檢索資訊,那麼如何恢複檢索條件到分頁之後的界面上呢?

從session擷取原來的檢索條件(存儲在toothorders的對象中),然後使用org.apache.commons.beanutils.beanutils 把toothorders中查詢條件複制到ordersview對象view中.

java web 分頁詳解2

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:部落格中使用的截圖工具是:紅蜻蜓抓圖精靈

java web 分頁詳解2