開源俱樂部

          開源框架

          jstl分頁顯示的思考

          Posted on 2006-07-26 17:17 HandSoft 閱讀(921) 評論(0)  編輯  收藏
          因為項目當中用到分頁,界面用了jstl,本想用jstl給我分頁的,測試代碼如下

          <%@ taglib uri="
          http://java.sun.com/jsp/jstl/core " prefix="c"%>
          <%@ taglib uri="
          http://java.sun.com/jsp/jstl/fmt " prefix="fmt"%>
          <%@ taglib uri="
          http://java.sun.com/jsp/jstl/sql " prefix="sql"%>
          <%@ page contentType="text/html; charset=gbk"%>
          <html>
          <body>
          ?<c:set value="8" var="ipage"/>
          ?<c:set value="${param.cpage}" var="cpage" scope="request"/>
          ?<c:if test="${empty sessionScope.allCount}">
          ?<sql:query var="rso">select * from test</sql:query>
          ?<c:set value="${rso.rowCount}" var="allCount" scope="session"/>
          ? </c:if>
          ?<sql:query var="rs" startRow="${ipage*(cpage-1)}" maxRows="${ipage}">
          ?select * from test
          ?</sql:query>
          ?<c:set value="${(allCount+ipage-1)/ipage}" var="allpage"/>
          ?<fmt:parseNumber value="${allpage}" integerOnly="true" var="allpage"/>
          ?xxx<c:out value="${allpage}"/><br>
          ?<c:forEach items="${rs.rows}" var="item">
          ?<c:out value="${item.name}"/>
          ?<c:out value="${item.password}"/><br>
          ?</c:forEach>
          ?? <c:if test="${cpage<=1}">
          ??? <c:set value="${cpage+1}" var="cpage"/>
          ?? </c:if>
          ?? <c:if test="${cpage>allpage}">
          ??? <c:set value="${allpage}" var="cpage"/>
          ?? </c:if>
          ? <A href="
          http://localhost:8080/jstl/test.jsp?cpage=${cpage-1 }">上一頁</A>
          ? <A href="
          http://localhost:8080/jstl/test.jsp?cpage=${cpage }">當前頁</A>
          ? <A href="
          http://localhost:8080/jstl/test.jsp?cpage=${cpage+1 }">下一頁</A>
          ?<hr>
          </body>
          </html>
          本以為這樣子比起用oracle里的rownum(如果更換數(shù)據(jù)庫還得改代碼),來的要好,因為我這里的是
          ?<sql:query var="rs" startRow="${ipage*(cpage-1)}" maxRows="${ipage}">
          ?select * from test
          ?</sql:query>
          可是我看了他的源代碼,竟然它利用緩存,每次調(diào)用
          <sql:query startRow="" maxRows="">它都會把select * from test的數(shù)據(jù)全部一次性查出得到一個result,再根據(jù)startRow,再調(diào)用result.next(),startRow次后才正式幫我們工作..
          還有hibernate也差不多,也是把數(shù)據(jù)全查出放在緩存里的,,

          看來還是原始的方式速度要快一些..
          .......進化出來的產(chǎn)物不一定先進


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 樟树市| 屏东市| 西盟| 莱芜市| 眉山市| 石阡县| 清水河县| 盐亭县| 阿荣旗| 阳谷县| 白河县| 牡丹江市| 四平市| 永顺县| 扶余县| 方正县| 分宜县| 天台县| 宿松县| 顺义区| 灵石县| 吕梁市| 策勒县| 乌什县| 汉源县| 兴义市| 崇义县| 闻喜县| 筠连县| 巢湖市| 金山区| 陇川县| 肥城市| 印江| 迭部县| 福建省| 城固县| 扎赉特旗| 永修县| 惠安县| 三明市|