開源俱樂部

          開源框架
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          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(如果更換數據庫還得改代碼),來的要好,因為我這里的是
          ?<sql:query var="rs" startRow="${ipage*(cpage-1)}" maxRows="${ipage}">
          ?select * from test
          ?</sql:query>
          可是我看了他的源代碼,竟然它利用緩存,每次調用
          <sql:query startRow="" maxRows="">它都會把select * from test的數據全部一次性查出得到一個result,再根據startRow,再調用result.next(),startRow次后才正式幫我們工作..
          還有hibernate也差不多,也是把數據全查出放在緩存里的,,

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


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


          網站導航:
           
          主站蜘蛛池模板: 武冈市| 安阳市| 襄汾县| 鄢陵县| 齐齐哈尔市| 肥西县| 双城市| 石阡县| 冀州市| 家居| 余江县| 大埔县| 汝城县| 静海县| 锡林郭勒盟| 丘北县| 镶黄旗| 五寨县| 怀来县| 沽源县| 府谷县| 沅陵县| 横峰县| 方正县| 桑日县| 钦州市| 湖口县| 津南区| 沐川县| 海林市| 贞丰县| 怀宁县| 子洲县| 安福县| 景洪市| 乌海市| 安阳县| 资源县| 台东市| 明光市| 黎川县|