開源俱樂部

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

          Struts+Hibernate實現分頁

          Posted on 2006-12-08 00:53 HandSoft 閱讀(1681) 評論(0)  編輯  收藏 所屬分類: 開源學習
          1.? 視圖顯示(select.jsp):首頁?/? 上一頁?/ 下一頁 / ?尾頁 ${requestScope.page} / ${requestScope.pagecount}? / 轉到
          2.? 頁面邏輯:
          ???? <%@ page language="java"%>
          <%@ taglib uri="?prefix="bean"%>
          <%@ taglib uri="
          ?prefix="html"%>
          <
          %@taglib uri="<%@taglib uri="
          ?
          <html>
          ?<head>
          ??<title>JSP for SelectActionForm form</title>
          ??<script type="javaScript">
          function submitForm()
          {
          ?if(document.form1.selectValue.value=="")
          ??????? {
          ?????????? alert("請輸入查找關鍵字");
          ?????????? document.form1.selectValue.focus();
          ?????????? return false;
          ??????? }else
          ??????? {
          ????????? return true;
          ??????? }
          }
          function toPage()
          {
          ? if(document.form1.pageText.value=="")
          ? {
          ??????????? alert("請輸入要前往的頁數");
          ?????????? document.form1.pageText.focus();
          ?????????? return false;
          ? }else
          ??????? {
          ????????? a=document.form1.pageText.value;
          ????????? if(a<=0||a>=${requestScope.pagecount})
          ???????????? a=${requestScope.page}
          ????????? document.form1.action = "selectAction.do?page="+a+"&selectValue=${requestScope.selectValue}";
          ????????? return true;
          ??????? }
          }
          </script>
          ?
          ?</head>
          ?<body>
          ??<center>
          ???<form name="form1" action="selectAction.do" method="POST">
          ????<table>
          ?????<tr>
          ??????<td>
          ???????please input:
          ??????</td>
          ??????<td>
          ???????<input type="text" name="selectValue"
          ????????value="${requestScope.selectValue}" />
          ??????</td>
          ??????<td>
          ???????<input type="submit" onclick="submitForm()" value="search" />
          ??????</td>
          ?????</tr>
          ????</table>
          ????<c:if test="${not empty sessionScope.selectList}">
          ?????<table border="1" cellpadding="3" cellspacing="3">
          ??????<tr>
          ???????<th>
          ????????ID
          ???????</th>
          ???????<th>
          ????????Name
          ???????</th>
          ???????<th>
          ????????DESC
          ???????</th>
          ???????<th>
          ????????Date
          ???????</th>
          ???????<th>
          ????????CreateBy
          ???????</th>
          ?
          ??????</tr>
          ??????<c:forEach var="cddate" items="${sessionScope.selectList}">
          ???????<tr>
          ????????<td>
          ?????????${cddate.pageCategoryId}
          ????????</td>
          ????????<td>
          ?????????${cddate.pageItemName}
          ????????</td>
          ????????<td>
          ?????????${cddate.pageItemDesc}
          ????????</td>
          ????????<td>
          ?????????${cddate.pageItemDate}
          ????????</td>
          ????????<td>
          ?????????${cddate.pageItemBy}
          ????????</td>
          ?
          ???????</tr>
          ??????</c:forEach>
          ?????</table>
          ?????<table>
          ??????<tr>
          ???????<td>
          ????????<a
          ?????????href="selectAction.do?action=frist&selectValue=${requestScope.selectValue}">MainPage</a>
          ???????</td>
          ???????<td>
          ????????<c:if test="${requestScope.page==1}">lastPage</c:if>
          ????????<c:if test="${requestScope.page!=1}">
          ?????????<a
          ??????????href="selectAction.do?action=back&page=${requestScope.page}&selectValue=${requestScope.selectValue}">lastPage</a>
          ????????</c:if>
          ???????</td>
          ???????<td>
          ????????<c:if test="${requestScope.page==requestScope.pagecount}">nextPage</c:if>
          ????????<c:if test="${requestScope.page!=requestScope.pagecount}">
          ?????????<a
          ??????????href="selectAction.do?action=next&page=${requestScope.page}&selectValue=${requestScope.selectValue}">nextPage</a>
          ????????</c:if>
          ???????</td>
          ???????<td>
          ????????<a
          ?????????href="selectAction.do?action=end&selectValue=${requestScope.selectValue}">endPage</a>
          ???????</td>
          ???????<td>
          ????????${requestScope.page} / ${requestScope.pagecount}
          ???????</td>
          ???????<td>
          ????????changeTo
          ????????<input type="text" size="2" name="pageText"
          ?????????onkeyup="value=value.replace(/[^\d]/g,'') "
          ?????????onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"
          ?????????value="${requestScope.page}" />
          ????????<input type="submit" onclick="toPage()" value="GO" />
          ???????</td>
          ??????</tr>
          ?????</table>
          ????</c:if>
          ???</form>
          ??</center>
          ?</body>
          </html>
          ?

          3 . struts-config.xml文件
          ???? <global-forwards>
          ??????????? <forward name="select" path="/select.jsp" />
          ???? </global-forwards>
          ???? <form-beans>
          ??????????? <form-bean name="selectActionForm" type="SelectActionForm" />
          ??? </form-beans>
          ???? <action-mappings>
          ???????????? <action input="/select.jsp" name="selectActionForm" path="/selectAction" scope="request" type="SelectAction" validate="true" />
          ???? </action-mappings>
          4. SelectActionForm.java
          ??? import org.apache.struts.action.ActionForm;
          import org.apache.struts.action.ActionErrors;
          import org.apache.struts.action.ActionMapping;
          import javax.servlet.http.HttpServletRequest;
          ?
          public class SelectActionForm
          ??? extends ActionForm
          {
          ???? private String pageText;????????? //頁面編碼???
          ???? private String selectValue;?????? //查詢條件關鍵字
          ???? public String getPageText()???? //跳轉到的頁面
          ???? {
          ??????? ?return pageText;????????????
          ???? }
          ?
          ???? public void setPageText(String pageText)
          ???? {
          ???????? this.pageText = pageText;
          ???? }
          ?
          ???? public void setSelectValue(String selectValue)
          ???? {
          ??????? ?this.selectValue = selectValue;
          ???? }
          ?
          ???? public String getSelectValue()
          ???? {
          ???????? return selectValue;
          ???? }
          ?
          ???? public ActionErrors validate(ActionMapping actionMapping,
          ???????????????????????????????? HttpServletRequest httpServletRequest)
          ???? { /** @todo: finish this method, this is just the skeleton.*/
          ???????? return null;
          ???? }
          ?
          ???? public void reset(ActionMapping actionMapping,
          ????????????????????? HttpServletRequest servletRequest)
          ???? {
          ???? }
          }
          5. SelectAction.java
          import org.apache.struts.action.ActionMapping;
          import org.apache.struts.action.ActionForm;
          import javax.servlet.http.HttpServletRequest;
          import javax.servlet.http.HttpServletResponse;
          import org.apache.struts.action.ActionForward;
          import org.apache.struts.action.Action;
          import com.wang.business.BusinessManage;
          import com.wang.module.*;
          import java.util.*;
          ?
          public class SelectAction
          ??? extends Action
          {
          ??? public ActionForward execute(ActionMapping mapping, ActionForm form,
          ???????????????????????????????? HttpServletRequest request,
          ???????????????????????????????? HttpServletResponse response)
          ??? {
          ??????? SelectActionForm selectForm = (SelectActionForm) form;
          ??????? BusinessManage bm = new BusinessManage();
          ??????? int page = 1;??? //初始化為第一頁
          ?
          ??????? if (selectForm.getSelectValue() != null)
          ??????? {
          ??????????? // if(request.getParameter("action")!=null)
          ??????????? if (request.getParameter("page") == null)
          ??????????? {
          ??????????????? page = 1;
          ??????????? }
          ??????????? else
          ??????????? {
          ?
          ??????????????? page = Integer.parseInt(request.getParameter("page"));
          ??????????? }
          ?
          ??????????? if (selectForm.getPageText() != null)
          ??????????? {
          ??????????????? page = Integer.parseInt(selectForm.getPageText());
          ??????????? }
          ??????????? if (request.getParameter("action") != null)
          ??????????? {
          ??????????????? if (request.getParameter("action").equals("frist")) ??????????????? {?? //跳轉到首頁
          ??????????????????? page = 1;
          ??????????????? }
          ??????????????? else if (request.getParameter("action").equals("end"))??????????????? //跳轉到尾頁
          ??????????????? {
          ??????????????????? page = bm.PAGECOUNT;
          ??????????????? }
          ??????????????? else if (request.getParameter("action").equals("back"))????????????? //跳轉到上一頁
          ??????????????? {
          ??????????????????? page -= 1;
          ??????????????? }
          ??????????????? else if (request.getParameter("action").equals("next"))??????????????? //跳轉到下一頁
          ??????????????? {
          ??????????????????? page += 1;
          ??????????????? }
          ??????????? }
          ?
          ??????????? List list = bm.selectCDBean(selectForm.getSelectValue(), page, 5);?? //頁面傳遞三個參數,將取得的值存放于一個list列表中
          ??????????? // ArrayList list1 = new ArrayList(list);
          ??????????? request.getSession().setAttribute("selectList", list);???? //將頁碼集合變量存放于字符串變量selectList中,存放于session范圍內
          ??????????? int pagecount = bm.PAGECOUNT;???????????????????????? //頁面總數
          ??????????? request.setAttribute("pagecount", pagecount);
          ??????????? request.getSession().removeAttribute("selectList");
          ??????????? request.getSession().setAttribute("selectList", list);
          ??????????? request.setAttribute("selectValue", selectForm.getSelectValue());
          ??????????? request.setAttribute("page", page);
          ??????????? request.setAttribute("pagecount", pagecount);
          ?
          ??????? }
          ??????? else
          ??????? {
          ??????????? request.getSession().removeAttribute("selectList");
          ??????? }
          ??????? bm.close();
          ??????? return mapping.findForward("select");
          ??? }
          }

          6. 業務邏輯
          BusinessManage.java
          package com.wang.business;
          ?
          import org.hibernate.*;
          import org.hibernate.cfg.*;
          import com.wang.module.*;
          import java.util.*;
          ?
          public class BusinessManage
          {
          ??? private SessionFactory sf = null;
          ??? private Session s = null;
          ??? private Transaction ts = null;
          ??? private Query query = null;
          ??? public static int PAGECOUNT;
          ??? public BusinessManage()
          ??? {
          ??????? sf = new Configuration().configure().buildSessionFactory();
          ??????? s = sf.openSession();
          ??????? ts = s.beginTransaction();
          ??? }
          ?
          ??? public void openSession()
          ??? {
          ??????? s = sf.openSession();
          ??? }
          ?
          ???
          ??? public List selectCDBean(String value, int page, int count)
          ??? {
          ??????? List list = null;
          ??????? int pagelast = 0;
          ??????? try
          ??????? {
          ??????????? query = s.createQuery("from ViewPage cd where cd.pageItemName like '%"
          ?????+ value + "%'");
          ?
          ??????????? if (query.list().size() / count?== 0)?? //頁數為偶數
          ??????????? {
          ??????????????? PAGECOUNT = query.list().size() / count;? //頁面總數
          ??????????? }
          ??????????? else
          ??????????? {
          ??????????????? PAGECOUNT = query.list().size() / count + 1;?? //頁數為基數
          ??????????????? pagelast = query.list().size() / count;
          ??????????? }
          ??????????? int begin = page * count - count;?? //count為每頁顯示的紀錄數,
          ??????????? int end = page * count;
          ??????????? if (page == PAGECOUNT)
          ??????????? {
          ??????????????? end = query.list().size();
          ??????????? }
          ??????????? list = query.list().subList(begin, end);
          ??????? }
          ??????? catch (Exception ex)
          ??????? {
          ??????????? list = null;
          ??????????? ex.printStackTrace();
          ??????? }
          ??????? return list;
          ??? }
          ???
          ??? public void close()
          ??? {
          ??????? s.close();
          ??? }
          }


          ?
          ?
          主站蜘蛛池模板: 绿春县| 湖北省| 白银市| 苍溪县| 营口市| 宜章县| 若尔盖县| 林甸县| 封开县| 尚义县| 塘沽区| 尉犁县| 宁蒗| 鹤岗市| 涿鹿县| 博湖县| 奉节县| 南丰县| 耒阳市| 法库县| 四川省| 阿拉善右旗| 乌拉特后旗| 甘肃省| 东平县| 紫阳县| 涿鹿县| 无为县| 金川县| 东城区| 鄢陵县| 永城市| 桂林市| 镇原县| 牟定县| 普洱| 青海省| 富川| 叶城县| 云浮市| 太康县|