開源俱樂部

          開源框架

          jstl分頁顯示的思考

          Posted on 2006-07-26 17:17 HandSoft 閱讀(920) 評論(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)航:
           
          主站蜘蛛池模板: 榆林市| 中方县| 林甸县| 茌平县| 日照市| 吉隆县| 芮城县| 峨边| 麦盖提县| 泉州市| 寿光市| 营山县| 康乐县| 许昌市| 江城| 会昌县| 神木县| 法库县| 郓城县| 时尚| 平潭县| 麟游县| 桓仁| 五寨县| 建昌县| 沁源县| 方山县| 辽阳市| 阜新市| 门源| 美姑县| 湖北省| 闵行区| 无极县| 汉阴县| 柘城县| 吐鲁番市| 灵川县| 昔阳县| 永寿县| 仙居县|