隨筆-6  評論-38  文章-40  trackbacks-0

          ?

          Pager類:

          ?

          package ?com.zeroidea.common;

          ?

          public ? class ?Pager? {

          ???????????????????????
          private ? int ?totalRows;??? // ?總行數????

          ???????????????????????
          private ? int ?pageSize;???? // ?單頁數據項

          ???????????????????????
          private ? int ?currentPage; // ?當前頁號

          ???????????????????????
          private ? int ?totalPages;? // ?總頁數

          ???????????????????????
          private ? int ?startRows;?? // ?當前頁在數據庫中記錄位置

          ???????????????????????

          ???????????????????????
          public ?Pager() {??

          ???????????????????????}


          ???????????????????????

          ???????????????????????
          public ?Pager( int ?totalRows) {? // ?指定總行數據

          ????????????????????????
          this .setPageSize( 10 );??? // ?每頁?10條數據?

          ????????????????????????
          this .setTotalRows(totalRows);???

          ?

          ????????????????????????
          int ?pages? = ?totalRows / pageSize;

          ????????????????????????
          if ?((totalRows % pageSize)? > ? 0 ) {

          ????????????????????????????pages
          ++ ;

          ????????????????????????}


          ????????????????????????
          this .setTotalPages(pages);

          ????????????????????????

          ????????????????????????
          this .setStartRows( 0 );

          ????????????????????????
          this .setCurrentPage( 1 );?

          ???????????????????????}


          ???????????????????????

          ???????????????????????
          /**

          ????????????????????????*?
          @return ?the?currentPage

          ????????????????????????
          */


          ???????????????????????
          public ? int ?getCurrentPage()? {

          ????????????????????????
          return ?currentPage;

          ???????????????????????}


          ???????????????????????

          ???????????????????????
          /**

          ????????????????????????*?
          @param ?currentPage?the?currentPage?to?set

          ????????????????????????
          */


          ???????????????????????
          public ? void ?setCurrentPage( int ?currentPage)? {

          ????????????????????????
          this .currentPage? = ?currentPage;

          ???????????????????????}


          ???????????????????????

          ???????????????????????
          /**

          ????????????????????????*?
          @return ?the?pageSize

          ????????????????????????
          */


          ???????????????????????
          public ? int ?getPageSize()? {

          ????????????????????????
          return ?pageSize;

          ???????????????????????}


          ???????????????????????

          ???????????????????????
          /**

          ????????????????????????*?
          @param ?pageSize?the?pageSize?to?set

          ????????????????????????
          */


          ???????????????????????
          public ? void ?setPageSize( int ?pageSize)? {

          ????????????????????????
          this .pageSize? = ?pageSize;

          ???????????????????????}


          ???????????????????????

          ???????????????????????
          /**

          ????????????????????????*?
          @return ?the?startRows

          ????????????????????????
          */


          ???????????????????????
          public ? int ?getStartRows()? {

          ????????????????????????
          return ?startRows;

          ???????????????????????}


          ???????????????????????

          ???????????????????????
          /**

          ????????????????????????*?
          @param ?startRows?the?startRows?to?set

          ????????????????????????
          */


          ???????????????????????
          public ? void ?setStartRows( int ?startRows)? {

          ????????????????????????
          this .startRows? = ?startRows;

          ???????????????????????}


          ???????????????????????

          ???????????????????????
          /**

          ????????????????????????*?
          @return ?the?totalPages

          ????????????????????????
          */


          ???????????????????????
          public ? int ?getTotalPages()? {

          ????????????????????????
          return ?totalPages;

          ???????????????????????}


          ???????????????????????

          ???????????????????????
          /**

          ????????????????????????*?
          @param ?totalPages?the?totalPages?to?set

          ????????????????????????
          */


          ???????????????????????
          public ? void ?setTotalPages( int ?totalPages)? {

          ????????????????????????
          this .totalPages? = ?totalPages;

          ???????????????????????}


          ???????????????????????

          ???????????????????????
          /**

          ????????????????????????*?
          @return ?the?totalRows

          ????????????????????????
          */


          ???????????????????????
          public ? int ?getTotalRows()? {

          ????????????????????????
          return ?totalRows;

          ???????????????????????}


          ???????????????????????

          ???????????????????????
          /**

          ????????????????????????*?
          @param ?totalRows?the?totalRows?to?set

          ????????????????????????
          */


          ???????????????????????
          public ? void ?setTotalRows( int ?totalRows)? {

          ????????????????????????
          this .totalRows? = ?totalRows;

          ???????????????????????}


          ???????????????????????

          ???????????????????????
          /**

          ????????????????????????*?第一頁

          ????????????????????????
          */


          ???????????????????????
          public ? void ?fristPage() {

          ????????????????????????
          this .setCurrentPage( 1 );

          ????????????????????????
          this .setStartRows( 0 );

          ???????????????????????}


          ???????????????????????

          ???????????????????????
          /**

          ????????????????????????*?前一頁

          ????????????????????????
          */


          ???????????????????????
          public ? void ?previousPage() {

          ????????????????????????
          int ?nowPage? = ? this .getCurrentPage();?

          ????????????????????????
          if ?(nowPage? == ? 1 ) {

          ????????????????????????????
          return ;

          ????????????????????????}


          ???????????????????????
          this .setCurrentPage( -- nowPage);

          ????????????????????????
          this .setStartRows((nowPage? - ? 1 )? * ? this .getPageSize());

          ???????????????????????}


          ???????????????????????

          ???????????????????????
          /**

          ????????????????????????*?后一頁

          ????????????????????????
          */


          ???????????????????????
          public ? void ?nextPage() {

          ????????????????????????
          int ?nowPage? = ? this .getCurrentPage();

          ????????????????????????
          if ?(nowPage? == ? this .getTotalPages()) {

          ????????????????????????????
          this .lastPage();

          ????????????????????????????
          return ;

          ????????????????????????}


          ????????????????????????
          this .setCurrentPage(nowPage? + ? 1 );

          ????????????????????????
          this .setStartRows(nowPage? * ? this .getPageSize());

          ???????????????????????}


          ???????????????????????

          ???????????????????????
          /**

          ????????????????????????*?最后一頁

          ????????????????????????
          */


          ???????????????????????
          public ? void ?lastPage() {

          ????????????????????????
          this .setCurrentPage( this .getTotalPages());

          ????????????????????????
          this .setStartRows(( this .getTotalPages()? - ? 1 )? * ? this .getPageSize());

          ???????????????????????}


          ???????????????????????

          ???????????????????????
          /**

          ????????????????????????*?刷新頁

          ????????????????????????*?
          @param ?currentPage

          ????????????????????????
          */


          ???????????????????????
          public ? void ?refreshPage( int ?currentPage) {

          ????????????????????????
          this .setCurrentPage(currentPage);???

          ????????????????????????
          this .setStartRows((currentPage? - ? 1 )? * ? this .getPageSize());

          ????????????????????????
          if ?(currentPage? > ? this .getTotalPages()) {

          ????????????????????????????
          this .lastPage();

          ????????????????????????}


          ???????????????????????}


          }


          ?

          ?

          數據查詢:

          ?

          ???????????????????????

          ???????????????????????
          /**

          ????????????????????????*?取得總數據行??:有更簡單的方法請分享

          ????????????????????????
          */


          ???????????????????????
          public ? int ?selectDataRows()? {

          ????????????????????????
          int ?rows? = ? 0 ;

          ????????????????????????List?list?
          = ? null ;

          ????????????????????????Session?session?
          = ? null ;

          ????????????????????????Transaction?transaction?
          = ? null ;

          ????????????????????????Query?query?
          = ? null ;

          ????????????????????????
          try ? {

          ????????????????????????????session?
          = ?SessionFactory.currentSession();

          ????????????????????????????transaction?
          = ?session.beginTransaction();

          ????????????????????????????query?
          = ?session

          ????????????????????????????????????.createQuery(
          " select?msg?from?Msg?as?msg " );

          ????????????????????????????list?
          = ?query.list();

          ????????????????????????????rows?
          = ?list.size();

          ????????????????????????????transaction.commit();

          ????????????????????????????session.close();

          ????????????????????????}
          ? catch ?(Exception?excp)? {

          ????????????????????????????session.close();

          ????????????????????????}


          ?

          ????????????????????????
          return ?rows;

          ???????????????????????}


          ???????????????????????

          ?

          ?

          ?

          ???????????????????????
          /**

          ????????????????????????*?分頁查詢數據

          ????????????????????????*?

          ????????????????????????*?
          @param ?pager?

          ????????????????????????*?
          @return ?0?1?0:?Success?1:?Fail

          ????????????????????????
          */


          ???????????????????????
          public ?List?selectData(Pager?pager)? {

          ????????????????????????List?list?
          = ? null ;

          ????????????????????????Session?session?
          = ? null ;

          ????????????????????????Transaction?transaction?
          = ? null ;

          ????????????????????????Query?query?
          = ? null ;

          ????????????????????????

          ????????????????????????
          try ? {

          ????????????????????????????session?
          = ?SessionFactory.currentSession();

          ????????????????????????????transaction?
          = ?session.beginTransaction();

          ????????????????????????????query?
          = ?session.createQuery( " select?msg?from?Msg?as?msg?order?by?msg.msgId?desc " );

          ????????????????????????????query.setFirstResult(pager.getStartRows());?
          // ?設置起始行

          ????????????????????????????query.setMaxResults(pager.getPageSize());???
          // ?設置取數據行數

          ????????????????????????????list?
          = ?query.list();

          ????????????????????????????transaction.commit();

          ????????????????????????????session.close();

          ????????????????????????}
          ? catch ?(Exception?excp)? {

          ????????????????????????????session.close();

          ????????????????????????}


          ????????????????????????
          return ?list;

          ???????????????????????}


          ?

          ?

          ?

          Action?控制:

          ?

          ???????????????????????
          /**

          ????????????????????????*?查詢?方法,,按分頁查詢

          ????????????????????????*?

          ????????????????????????*?
          @param ?mapping

          ????????????????????????*?
          @param ?form

          ????????????????????????*?
          @param ?request

          ????????????????????????*?
          @param ?response

          ????????????????????????*?
          @return

          ????????????????????????
          */


          ???????????????????????
          public ? void ?selectData(ActionMapping?mapping,?ActionForm?form,

          ????????????????????????????HttpServletRequest?request,?HttpServletResponse?response)?
          {

          ????????????????????????List?list?
          = ? null ;

          ????????????????????????
          int ?currentPage? = ? 1 ;

          ????????????????????????MsgForm?msgForm?
          = ?(MsgForm)?form;

          ????????????????????????

          ????????????????????????String?pageMethod?
          = ?request.getParameter( " pageMethod " );????????? // ?存放請求頁方法

          ????????????????????????String?currentPageTemp?
          = ?request.getParameter( " currentPage " );??? // ?存放當前頁

          ????????????????????????

          ????????????????????????OperTable?operTable?
          = ? new ?OperTable();?????????????????????????? // ?操作表類

          ????????????????????????Pager?pager?
          = ? new ?Pager(operTable.selectDataRows());???????????? // ?頁面控制類

          ????????????????????????

          ????????????????????????

          ????????????????????????
          if ?(currentPageTemp? == ? null ) {

          ????????????????????????????pager.setCurrentPage(
          1 );

          ????????????????????????}
          ? else ? {

          ????????????????????????????currentPage?
          = ?Integer.parseInt(currentPageTemp);

          ????????????????????????}


          ????????????????????????

          ????????????????????????pager.setCurrentPage(currentPage);

          ????????????????????????

          ????????????????????????
          if ?(pageMethod? == ? null ) {

          ????????????????????????????pager.fristPage();??????
          // ?到首頁

          ????????????????????????????System.out.println(
          " 首頁 " );

          ????????????????????????}
          else {

          ????????????????????????????
          if ?(pageMethod.equals( " previousPage " )) {

          ????????????????????????????????pager.previousPage();???
          // ?到前一頁

          ????????????????????????????????System.out.println(
          " 前一頁 " );

          ????????????????????????????}
          ? else ? if ?(pageMethod.equals( " nextPage " )) {

          ????????????????????????????????pager.nextPage();???????
          // ?到后一頁

          ????????????????????????????????System.out.println(
          " 后一頁 " );

          ????????????????????????????}
          ? else ? if ?(pageMethod.equals( " lastPage " )) {

          ????????????????????????????????pager.lastPage();???????
          // ?到尾頁

          ????????????????????????????????System.out.println(
          " 尾頁 " );

          ????????????????????????????}
          else ? if ?(pageMethod.equals( " refreshPage " )) {

          ????????????????????????????????pager.refreshPage(currentPage);

          ????????????????????????????????System.out.println(currentPage);

          ????????????????????????????????System.out.println(
          " 刷新頁 " );

          ????????????????????????????}
          ? else ? {

          ????????????????????????????????pager.fristPage();??????
          // ?到首頁

          ????????????????????????????????System.out.println(
          " 首頁 " );

          ????????????????????????????}


          ????????????????????????}


          ????????????????????????

          ????????????????????????request.setAttribute(
          " pager " ,?pager);

          ????????????????????????request.setAttribute(
          " msgdata " ,?list);

          ????????????????????????request.setAttribute(
          " info " ,? " 已查詢數據 " );

          ????????????????????????msgForm.reset(mapping,?request);

          ???????????????????????}


          ?

          ?

          JSP顯示分頁:?href這樣用:

          ?

          ????????????????????????????????????
          < logic:present?name = " pager " >

          ????????????????????????????????????????
          < a?href = " msg.do?method=select&pageMethod=fristPage&currentPage=<bean:write?name='pager'?property='currentPage'/> " > 首頁 </ a >

          ????????????????????????????????????????
          < a?href = " msg.do?method=select&pageMethod=previousPage&currentPage=<bean:write?name='pager'?property='currentPage'/> " > 前一頁 </ a >

          ????????????????????????????????????????
          < a?href = " msg.do?method=select&pageMethod=nextPage&currentPage=<bean:write?name='pager'?property='currentPage'/> " > 后一頁 </ a >

          ????????????????????????????????????????
          < a?href = " msg.do?method=select&pageMethod=lastPage&currentPage=<bean:write?name='pager'?property='currentPage'/> " > 尾頁 </ a >

          ????????????????????????????????????????共有
          < span? class = " font-normal-red " >< bean:write?name = " pager " ?property = " totalRows " /></ span > 條記錄,當前第 < span? class = " font-normal-red " >< bean:write?name = " pager " ?property = " currentPage " /></ span > 頁,共有 < span? class = " font-normal-red " >< bean:write?name = " pager " ?property = " totalPages " /></ span > ?頁

          ????????????????????????????????????
          </ logic:present >

          ?

          < html:link > ?這樣用

          ?

          ??????????????????
          < logic:present?name = " pager " >

          ?????????????????????
          < html:link?page = " /msg.do?method=select&pageMethod=fristPage " ?paramId = " currentPage " ?paramName = " pager " ?paramProperty = " currentPage " > 首頁 </ html:link >

          ?????????????????????
          < html:link?page = " /msg.do?method=select&pageMethod=previousPage " ?paramId = " currentPage " ?paramName = " pager " ???paramProperty = " currentPage " > 前一頁 </ html:link >

          ?????????????????????
          < html:link?page = " /msg.do?method=select&pageMethod=nextPage " ????paramId = " currentPage " ?paramName = " pager " ???paramProperty = " currentPage " > 下一頁 </ html:link >

          ?????????????????????
          < html:link?page = " /msg.do?method=select&pageMethod=lastPage " ????paramId = " currentPage " ?paramName = " pager " ???paramProperty = " currentPage " > 尾頁 </ html:link >

          ?????????????????????共有

          ?????????????????????
          < span? class = " font-normal-red " >< bean:write?name = " pager " ?property = " totalRows " ? />

          ?????????????????????
          </ span > 條記錄,當前第 < span? class = " font-normal-red " >< bean:write?name = " pager " ?property = " currentPage " ? />

          ?????????????????????
          </ span > 頁,共有 < span? class = " font-normal-red " >< bean:write?name = " pager " ?property = " totalPages " ? />

          ?????????????????????
          </ span > ?頁

          ?????????????????????????????????????????????????????????????????????????????????????????????????
          </ logic:present >
          posted on 2006-11-30 16:26 一手的小窩窩 閱讀(169) 評論(0)  編輯  收藏 所屬分類: JAVA
          主站蜘蛛池模板: 松阳县| 济宁市| 辛集市| 南召县| 漯河市| 黄浦区| 阿图什市| 龙里县| 平安县| 偃师市| 平原县| 景泰县| 中西区| 台南县| 定州市| 龙海市| 富锦市| 黄浦区| 西青区| 井研县| 贺兰县| 咸阳市| 莱西市| 井陉县| 大荔县| 兴化市| 崇信县| 蒙阴县| 松桃| 石城县| 酒泉市| 武宁县| 自贡市| 屯门区| 额济纳旗| 民县| 克什克腾旗| 名山县| 吉木萨尔县| 安宁市| 广元市|