亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? struts.txt.txt

?? struts分頁實(shí)現(xiàn) 能獨(dú)立使用 struts分頁實(shí)現(xiàn)
?? TXT
字號:
頁面實(shí)體類為Page.java,代碼如下所示:

package org.shirdrn.page;

import java.util.List;

public class Page {
private int pageSize;    // 每頁顯示的記錄數(shù)
private int totalPage;    // 頁數(shù)
private int rowCount;    // 總記錄數(shù)
private int currentPage;    // 當(dāng)前頁
private int prePage;    // 上一頁
private int nextPage;    // 下一頁
private boolean hasNextPage;    // 是否有下一頁
    private boolean hasPreviousPage;    // 是否有前一頁
private List list;

public Page(){    // 實(shí)例化一個Page對象時,初始化頁面顯示記錄數(shù)
   this.pageSize = 5;
}

public int getCurrentPage() {
   return currentPage;
}

public void setCurrentPage(int currentPage) {
   this.currentPage = currentPage;
}

public List getList() {
   return list;
}

public void setList(List list) {
   this.list = list;
}

public int getNextPage() {
   return nextPage;
}

public void setNextPage(int nextPage) {
   this.nextPage = nextPage;
}

public int getPageSize() {
   return pageSize;
}

public void setPageSize(int pageSize) {
   this.pageSize = pageSize;
}

public int getPrePage() {
   return prePage;
}

public void setPrePage(int prePage) {
   this.prePage = prePage;
}

public int getRowCount() {
   return rowCount;
}

public void setRowCount(int rowCount) {
   this.rowCount = rowCount;
}

public int getTotalPage() {
   return totalPage;
}

public void setTotalPage(int totalPage) {
   this.totalPage = totalPage;
}

public boolean isHasNextPage() {
   return hasNextPage;
}

public void setHasNextPage(boolean hasNextPage) {
   this.hasNextPage = hasNextPage;
}

public boolean isHasPreviousPage() {
   return hasPreviousPage;
}

public void setHasPreviousPage(boolean hasPreviousPage) {
   this.hasPreviousPage = hasPreviousPage;
}
}

分頁邏輯的實(shí)現(xiàn)類為PageUtil.java,代碼如下所示:

package org.shirdrn.page;

import org.hibernate.Query;
import org.hibernate.Session;
import org.shirdrn.hibernate.HibernateSessionFactory;

public class PageUtil {
private Page page;    //   分頁邏輯處理的對象是頁面實(shí)體
private int start;    // start是點(diǎn)擊“上一頁”或“下一頁”傳遞進(jìn)來的頁碼
private String hql;    // 檢索的HQL語句

public PageUtil(int start,String sql){

    // 實(shí)例化一個PageUtil對象。在這里調(diào)用了除了最后一個方法getPage()以外的,該P(yáng)ageUtil類的所有實(shí)現(xiàn)方法,具體實(shí)現(xiàn)可以看下面的方法實(shí)現(xiàn)

    // 注意:必須保證其中方法的順序如下所示
   page = new Page();    // 初始化一個Page,即指定了pageSize=5,這個可以到Page類中自定義
   this.start = start;
   this.hql = sql;
   setRowCount();    // 設(shè)置page的屬性rowCount值,即該次查詢的總記錄數(shù)
   setTotalPage();    // 設(shè)置總頁數(shù)
   setCurrentPage();    // 設(shè)置當(dāng)前頁
   setPrePage();    //   設(shè)置上一頁
   setNextPage();    //   設(shè)置下一頁
   setPreOrNextBoolean();    // 設(shè)置是否有“上一頁”或者是否有下一頁的boolean型標(biāo)識
}

public void setPreOrNextBoolean(){     // 設(shè)置是否有“上一頁”或者是否有下一頁的boolean型標(biāo)識
   if(page.getCurrentPage()<=1){    // 第一頁時,沒有上一頁,則上一頁鏈接失效
    page.setHasPreviousPage(false);
   }
   else{
    page.setHasPreviousPage(true);
   }
   if(page.getCurrentPage()>=page.getTotalPage()){    // 最后一頁時,沒有下一頁,則下一頁鏈接失效  
    page.setHasNextPage(false);
   }
   else{
    page.setHasNextPage(true);
   }
}

public void setCurrentPage(){      // 設(shè)置當(dāng)前頁
   if(start<1){
    page.setCurrentPage(1);
   }
   if(start>page.getTotalPage()){
    page.setCurrentPage(page.getTotalPage());
   }
   page.setCurrentPage(start);
}

public void setPrePage(){       // 設(shè)置上一頁
   page.setPrePage(page.getCurrentPage()-1);
}

public void setNextPage(){
   page.setNextPage(page.getCurrentPage()+1);
}

public void setTotalPage(){       // 設(shè)置總頁數(shù)
   int rowCount = getRowCount();
   int pageSize = page.getPageSize();
   if(rowCount>pageSize){
    if(rowCount%pageSize == 0){
     page.setTotalPage(rowCount/pageSize);
    }
    else{
     page.setTotalPage(1+(rowCount/pageSize));
    }
   }
   else{
    page.setTotalPage(1);
   }
}

public void setRowCount(){     // 設(shè)置page的屬性rowCount值,即該次查詢的總記錄數(shù)

   page.setRowCount(getRowCount());
}

public int getRowCount(){       // 獲取總記錄數(shù)
   Session session = HibernateSessionFactory.getSession();
   Query query = session.createQuery(hql);       //   執(zhí)行檢索
   int size = query.list().size();
   session.close();
   return size;
}

public int getStartIndex(){       //   當(dāng)傳遞進(jìn)來一個頁碼,根據(jù)這個頁碼設(shè)置執(zhí)行后臺檢索的起始索引
   int startIndex = 0;
   if(start<0){
    startIndex = 0;
   }
   else{
    if(start>page.getTotalPage()){
     startIndex = page.getPageSize()*(page.getTotalPage()-1);
    }
    else{
     startIndex = page.getPageSize()*(start-1);
    }
   }
   return startIndex;
} 

public Page getPage(){       //   這個方法不是在初始化PageUtil時調(diào)用的,而是初始化之后調(diào)用,返回一個頁(主要是一個頁所要顯示的記錄列表query.list())
   Session session = HibernateSessionFactory.getSession();
   Query query = session.createQuery(hql);
   query.setFetchSize(10);
   query.setFirstResult(getStartIndex());
   query.setMaxResults(page.getPageSize());
   page.setList(query.list());
   session.close();
   return page;
}
}

頁面listPersons.jsp代碼的編寫如下所示:

<%@ page contentType="text/html;charset=utf-8"%>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%> 
<html:html locale="true">
<head>
<base href="<%=basePath%>">
<title>查詢記錄列表</title>
<style type="text/css">
   body{
    background:#000000;
    font-size:12px;
    color:yellow;
   }
   a:link{
    color:yellow;
    text-decoration:none;
   }
   a:hover{
    color:red;
    text-decoration:none;
   }
   a:visited{
    color:yellow;
    text-decoration:none;
   }
</style>
</head>
<body>
    <table width="60%" align="center" bgcolor="green" border="1">
      <tr>
      <th colspan="10">人員查詢列表</th>
      </tr>
      <tr align="center">
     <td width="20%"><b>ID</b></td>
      <td width="20%"><b>姓名</b></td>
      <td width="20%"><b>性別</b></td>
      <td width="20%"><b>年齡</b></td>
      <td width="20%"><b>住址</b></td>
      </tr>
      <logic:present name="persons">
        <logic:iterate id="person" name="persons" type="org.shirdrn.entity.Person">
          <logic:present name="person">
            <tr align="center">
              <td width="20%" height="10"><bean:write name="person" property="id"/></td>
              <td width="20%" height="10"><bean:write name="person" property="name"/></td>
              <td width="20%" height="10"><bean:write name="person" property="gender"/></td>
              <td width="20%" height="10"><bean:write name="person" property="age"/></td>
              <td width="20%" height="10"><bean:write name="person" property="addr"/></td>
            </tr>
          </logic:present>
        </logic:iterate>
      </logic:present>
    </table>
    <table align="center" width="60%" bgcolor="green" border="1">
    <tr>
       <td align="center" colspan="10">
          <logic:present name="myPage">
            <html:link page="/page.do?page=1">首頁</html:link>
          <logic:equal name="myPage" property="hasPreviousPage" value="false">上一頁</logic:equal>
          <logic:equal name="myPage" property="hasPreviousPage" value="true">
           <a href="<%=path%>/page.do?page=<bean:write name="myPage" property="prePage"/>">上一頁</a>
      </logic:equal>
           
           每頁<bean:write name="myPage" property="pageSize"/>條記錄
           共<bean:write name="myPage" property="rowCount"/>條記錄
                當(dāng)前第(<bean:write name="myPage" property="currentPage"/>/<bean:write name="myPage" property="totalPage"/>)頁
        <logic:equal name="myPage" property="hasNextPage" value="false">下一頁</logic:equal>
        <logic:equal name="myPage" property="hasNextPage" value="true">
         <a href="<%=path%>/page.do?page=<bean:write name="myPage" property="nextPage"/>">下一頁</a>
        </logic:equal>
           <a href="<%=path%>/page.do?page=<bean:write name='myPage' property='totalPage'/>">末頁</a>
        </logic:present>
      </td>
      </tr>
    </table>
</body>
</html:html>

其中,每次點(diǎn)擊“首頁”、“上一頁”、“下一頁”、“末頁”鏈接的時候,都去請求Action,將頁碼傳到Action中,根據(jù)傳遞進(jìn)去的頁碼來處理下次顯示的記錄的查詢。

Action的實(shí)現(xiàn)為PageAction,代碼如下所示:

package org.shirdrn.struts.action;

import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.shirdrn.page.Page;
import org.shirdrn.page.PageUtil;

public class PageAction extends Action {

public ActionForward execute(ActionMapping mapping, ActionForm form,
    HttpServletRequest request, HttpServletResponse response) {
   String page = request.getParameter("page");
   String hql = "from Person";
   int start = (new Integer(page)).intValue();
   PageUtil pu = new PageUtil(start,hql);
   Page myPage = pu.getPage();
   List persons = pu.getPage().getList();
   HttpSession session = request.getSession();
   session.setAttribute("myPage", myPage);
   session.setAttribute("persons", persons);
   return mapping.findForward("list_persons");
}
}

測試時,直接在瀏覽器地址欄中鍵入鏈接:

http://localhost:8080/HibernateStrutsPage/page.do?page=1

測試頁面的效果如下所示:


第一頁的時候,“上一頁”鏈接是無效的,即在頁面listPersons.jsp中執(zhí)行代碼:

<logic:equal name="myPage" property="hasPreviousPage" value="false">上一頁</logic:equal>

最后一頁的時候,“下一頁”的鏈接是無效的,即在頁面listPersons.jsp中執(zhí)行代碼:

<logic:equal name="myPage" property="hasNextPage" value="false">下一頁</logic:equal>

否則,如既不是第一頁,又不是左后一頁,則執(zhí)行下面的代碼顯示“上一頁”和“下一頁”,而且鏈接是有效的,可以請求Action執(zhí)行查詢獲取相應(yīng)頁顯示的記錄:

          <logic:equal name="myPage" property="hasPreviousPage" value="true">
           <a href="<%=path%>/page.do?page=<bean:write name="myPage" property="prePage"/>">上一頁</a>
      </logic:equal>

        <logic:equal name="myPage" property="hasNextPage" value="true">
         <a href="<%=path%>/page.do?page=<bean:write name="myPage" property="nextPage"/>">下一頁</a>
        </logic:equal>

而首頁和末頁在頁面顯示的任何時候,都是有效的:

<html:link page="/page.do?page=1">首頁</html:link>

        </logic:equal>
           <a href="<%=path%>/page.do?page=<bean:write name='myPage' property='totalPage'/>">末頁</a>
        </logic:present>

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品白丝在线| 欧美成人高清电影在线| 91啪亚洲精品| 欧美日本在线看| 精品国一区二区三区| 亚洲精品久久嫩草网站秘色| 日韩和欧美一区二区| 国产精品一区专区| 欧美三区免费完整视频在线观看| 精品国产自在久精品国产| 国产一区高清在线| 制服丝袜激情欧洲亚洲| 亚洲视频1区2区| 国产成人日日夜夜| 日韩精品中文字幕在线一区| 亚洲国产美女搞黄色| 成人美女在线观看| 精品处破学生在线二十三| 高清国产一区二区| 久久久高清一区二区三区| 琪琪一区二区三区| 欧美精品日韩精品| 午夜一区二区三区视频| 国产成人在线免费观看| 亚洲欧洲在线观看av| 成人福利视频在线| 国产农村妇女精品| 国产精品资源在线| 一级日本不卡的影视| 91成人在线精品| 亚洲综合一区二区精品导航| 一本到高清视频免费精品| 国产精品视频麻豆| 9l国产精品久久久久麻豆| 国产精品成人一区二区三区夜夜夜 | 国产精品一品视频| 亚洲精品网站在线观看| 欧美成人乱码一区二区三区| 97se亚洲国产综合自在线| 亚洲欧洲性图库| 欧美一区中文字幕| 九九**精品视频免费播放| 日韩欧美中文一区| 捆绑调教美女网站视频一区| 日韩欧美一区在线| 一本一道久久a久久精品综合蜜臀| 麻豆久久一区二区| 久久久一区二区三区捆绑**| 91成人在线免费观看| 国产成人免费视频精品含羞草妖精| 亚洲香肠在线观看| 亚洲国产成人在线| 色欧美片视频在线观看在线视频| 日韩vs国产vs欧美| 国产亚洲va综合人人澡精品| jiyouzz国产精品久久| 久久精品免费看| 午夜精品免费在线| 亚洲综合色成人| 国产精品电影一区二区三区| 精品国产1区二区| 欧美日韩免费高清一区色橹橹| 成人激情图片网| 成人午夜激情视频| 国产**成人网毛片九色| 国产美女精品人人做人人爽| 麻豆国产精品777777在线| 亚洲电影一区二区三区| 一区二区三区中文免费| 亚洲色欲色欲www| 国产精品视频yy9299一区| 久久久精品tv| 久久精品视频一区二区| 2023国产精品视频| 日本精品视频一区二区| 99re这里只有精品首页| 成人av电影在线| 成人污污视频在线观看| 盗摄精品av一区二区三区| 国产成人丝袜美腿| 成人免费高清在线观看| jlzzjlzz亚洲日本少妇| www.欧美亚洲| 日韩视频在线永久播放| 538在线一区二区精品国产| 欧美网站一区二区| 丁香婷婷综合网| 国产98色在线|日韩| 国产不卡视频在线播放| 成人动漫在线一区| 91丨porny丨首页| 欧美影视一区在线| 欧美精品粉嫩高潮一区二区| 在线播放中文一区| 精品裸体舞一区二区三区| 精品剧情v国产在线观看在线| 精品处破学生在线二十三| 国产亚洲短视频| 亚洲天堂成人网| 午夜国产不卡在线观看视频| 日本成人在线电影网| 国产一区二区三区在线观看免费| 国产成人免费视频一区| 色婷婷综合久久| 91精品国产综合久久福利| 欧美成人性战久久| 国产精品久久久久四虎| 亚洲图片欧美色图| 麻豆91免费看| 99天天综合性| 欧美狂野另类xxxxoooo| 久久精品人人做人人爽97| 国产精品久久毛片| 午夜久久久影院| 国产一区二区0| 欧洲一区在线观看| 色综合天天天天做夜夜夜夜做| 国产一区不卡精品| 在线视频欧美区| 精品欧美一区二区久久| 亚洲日本va在线观看| 日本不卡不码高清免费观看| 国产精品自拍网站| 欧美日韩一区二区三区四区 | 亚洲成人资源网| 国产一区视频导航| 色婷婷久久综合| 久久夜色精品国产欧美乱极品| 亚洲免费观看高清| 亚洲激情自拍偷拍| 国产综合久久久久久鬼色| 黑人巨大精品欧美黑白配亚洲| 色狠狠综合天天综合综合| 精品国产第一区二区三区观看体验 | 亚洲激情第一区| 国产一区二区三区免费| 欧美在线不卡一区| 国产精品超碰97尤物18| 麻豆精品蜜桃视频网站| 欧美羞羞免费网站| 中文字幕在线不卡| 国产美女视频91| 91精品国产综合久久婷婷香蕉| 日韩一区日韩二区| 国产伦精品一区二区三区免费迷| 欧美日韩亚洲高清一区二区| 中文字幕在线一区免费| 国产一区二区三区久久久| 欧美日韩精品免费| 亚洲免费观看高清| 波多野结衣中文一区| 日韩精品免费专区| 91麻豆国产在线观看| 日本一区二区三区四区在线视频| 免费成人av在线| 欧美日韩二区三区| 亚洲午夜在线观看视频在线| 99久久777色| 中文字幕av一区二区三区免费看| 精品一区二区影视| 日韩一级黄色片| 免费视频最近日韩| 欧美二区在线观看| 天天综合色天天综合色h| 欧美色区777第一页| 一区二区欧美在线观看| 色噜噜狠狠成人网p站| 亚洲精品视频自拍| 色婷婷久久一区二区三区麻豆| 亚洲人精品午夜| 91丝袜呻吟高潮美腿白嫩在线观看| 亚洲国产精品ⅴa在线观看| 国产成人a级片| 国产精品久久免费看| 97超碰欧美中文字幕| 亚洲免费观看高清完整版在线| 日本韩国一区二区| 亚洲午夜电影网| 日韩亚洲欧美高清| 国产在线视频一区二区三区| 精品av综合导航| 国产宾馆实践打屁股91| 国产精品嫩草99a| 色噜噜狠狠成人网p站| 亚洲一区二区三区不卡国产欧美| 欧美亚洲动漫精品| 美国毛片一区二区| 国产欧美日韩亚州综合| 本田岬高潮一区二区三区| 亚洲色图20p| 欧美精品 国产精品| 蜜桃av噜噜一区二区三区小说| www国产亚洲精品久久麻豆| 成人av网站在线观看| 亚洲一区二区三区不卡国产欧美| 91精品国产免费久久综合| 国产自产v一区二区三区c| 国产精品久久久爽爽爽麻豆色哟哟| 成人夜色视频网站在线观看| 一区二区三区高清在线|