lizongbo 的 編程學(xué)習(xí)

          http://618119.com

          BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
            23 Posts :: 1 Stories :: 78 Comments :: 0 Trackbacks

          在一篇blog里我在回復(fù)里寫了displaytag1.1大數(shù)據(jù)量分頁顯示的索引存在bug
           http://www.aygfsteel.com/zJun/archive/2006/02/27/32723.html

          后來下載源代碼下來找到了修改bug的地方。
          并把代碼發(fā)到 displaytag的jira里了,具體地址在:
          http://jira.codehaus.org/browse/DISPL-303
           (有人已經(jīng)提交這個bug了)


          org.displaytag.pagination.SmartListHelper.java
          把下面兩個方法的代碼改寫如下:

               public int getFirstIndexForCurrentPage() {
                  return (this.currentPage - 1) * this.pageSize;
              }

              /**
               * Returns the index into the master list of the last object that should appear on the current page that the user is
               * viewing.
               * @return int
               */
              protected int getLastIndexForCurrentPage() {
                  if (this.partialList) {
                      return (getFirstIndexForCurrentPage()) +
                              Math.min(this.pageSize - 1, this.fullList.size() - 1);
                  } else {
                      return getLastIndexForPage(this.currentPage);
                  }
              }


          順便記錄 displaytag 1.1 使用Partial Lists大數(shù)據(jù)量分頁的例子:

          在近量不改動現(xiàn)有代碼的基礎(chǔ)上來使用displaytag結(jié)合數(shù)據(jù)庫分頁.

          1.先設(shè)置總頁數(shù):

          <%
             Integer totalNum = new Integer(919);
          request.setAttribute("totalNum",totalNum);//設(shè)置總記錄條數(shù)
          %>

          2.配置displaytag的 兩個屬性:partialList="true" size="totalNum"
          比如:
            <display:table id="testtbid"  name="requestScope.testlist" pagesize="20" partialList="true" size="totalNum">

          3.在jsp中獲得翻頁信息的代碼:

          <%

          下面代碼是取得翻頁數(shù)

          //如果沒有為table設(shè)置 id那么就要寫成ParamEncoder(null);
            String rpname = new org.displaytag.util.ParamEncoder("testtbid")
                .encodeParameterName(
                    org.displaytag.tags.TableTagParameters.PARAMETER_PAGE);
            System.out.println("當前頁數(shù):" + rpname + " = " +
                               request.getParameter(rpname));
                 //然后根據(jù)當前頁數(shù)去從數(shù)據(jù)庫中取出相應(yīng)數(shù)據(jù)。

           

          //see: http://displaytag.sourceforge.net/11/displaytag/apidocs/org/displaytag/tags/TableTagParameters.html

          %>
          表格分頁導(dǎo)航條里的分頁鏈接個數(shù)默認是8個,可以通過下面的代碼來更改
          //在<display:table>標簽內(nèi)
              <display:setProperty name="paging.banner.group_size" value="20"/>
          //</display:table>

          當然也可以通過實現(xiàn) org.displaytag.pagination.PaginatedList接口來完成這個要求。
          更多信息,請參考:
          http://displaytag.sourceforge.net/11/tut_externalSortAndPage.html

          利用內(nèi)置el在displaytag里顯示checkbox非常簡單:

                               <display:column title='select User' >
           <input type="checkbox" name="firstName"  value="{testtbid.name}" />${testtbid.name}
          </display:column>

          posted on 2006-03-14 21:01 lizongbo 的編程學(xué)習(xí) 閱讀(7346) 評論(6)  編輯  收藏 所屬分類: java 積累
          主站蜘蛛池模板: 绥江县| 建水县| 乡宁县| 新闻| 驻马店市| 陈巴尔虎旗| 拉萨市| 潼南县| 西城区| 合作市| 嘉定区| 桂东县| 三明市| 建昌县| 怀柔区| 合山市| 文水县| 雷波县| 肥西县| 巴马| 洛阳市| 沙河市| 屯昌县| 根河市| 筠连县| 巴马| 平潭县| 麻江县| 左权县| 郧西县| 正安县| 昆明市| 景宁| 敖汉旗| 正镶白旗| 孝义市| 台中市| 威信县| 梅州市| 三亚市| 民乐县|