1. 程式人生 > >jsp假分頁示例

jsp假分頁示例

  在web開發過程中,不可避免的需要使用到分頁的功能,jsp分頁一般有真分頁和假分頁。例如mysql:真分頁意思就是用limit查詢語句從後臺檢索出結果集傳回jsp頁面顯示。而假分頁則是後臺傳回所有資料的list集合或者結果集,利用js或者遊標等進行分頁。(假分頁一定程度上給伺服器執行增加了壓力)
      下面示例是 利用後臺儲存到session的一個list集合進行假分頁的案例

<%@ page language="java" import="java.util.*,com.entity.*;" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd
">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無標題文件</title>
</head>

<body>
<%
List<User> data=(List<User>)session.getAttribute("user");

int totalNum=data.size();

int pageSize=1;

int currentPage=1;

String num=request.getParameter("page");
if(num!=null){
currentPage=Integer.parseInt(num);
}
if(currentPage<1){
currentPage=1;
}

int totalPage=totalNum/pageSize;
if(totalNum%pageSize!=0){
totalPage++;
}
if(currentPage>totalPage){
currentPage=totalPage;
}

int startNum=(currentPage-1)*pageSize;
int endNum=currentPage*pageSize-1;

if(endNum>=data.size()){
endNum=data.size()-1;
}
%>



<table>
<tr>
   <td>firstName</td><td>lastName</td><td>email</td><td></td><td></td>
</tr>
     <%for(int i=startNum;i<=endNum;i++){%>
     <%
           User p=(User)data.get(i);
     %>
    <tr>
        <td><%=p.getFirstName()%></td>
        <td><%=p.getLastName()%></td>
        <td><%=p.getEmail()%></td>
        <td></td>
        <td></td>
    </tr>
     <%}%>

<tr>
    <td>當前頁:<%=currentPage%>/總共頁:<%=totalPage%></td>
    <td><a href="user/JSP假分頁.jsp?page=1">首頁</a></td>
    <td><a href="user/JSP假分頁.jsp?page=<%=currentPage-1%>">上一頁</a></td>
    <td><a href="user/JSP假分頁.jsp?page=<%=currentPage+1%>">下一頁</a></td>
    <td><a href="user/JSP假分頁.jsp?page=<%=totalPage%>">尾頁</a><br/></td>
</tr>                                              
</table>
</body>
</html>