開源俱樂部

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

          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(如果更換數據庫還得改代碼),來的要好,因為我這里的是
          ?<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也差不多,也是把數據全查出放在緩存里的,,

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


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


          網站導航:
           
          主站蜘蛛池模板: 印江| 聂拉木县| 朔州市| 南宫市| 义乌市| 梧州市| 谢通门县| 上林县| 三台县| 兖州市| 龙南县| 侯马市| 治多县| 唐河县| 吉林省| 南充市| 扶余县| 宜都市| 道真| 邵阳县| 延寿县| 巩留县| 镶黄旗| 利川市| 武定县| 滦南县| 肇州县| 弋阳县| 工布江达县| 县级市| 永登县| 凤庆县| 彰化市| 萨迦县| 英吉沙县| 甘洛县| 浦北县| 德安县| 迁西县| 五家渠市| 旬邑县|