Home  >  Article  >  Web Front-end  >  A practical JSP paging code

A practical JSP paging code

高洛峰
高洛峰Original
2016-12-29 15:09:211425browse

An enthusiastic netizen replied:
str += "Go to4654e98d60f1d2f950430f4e6fb8a73a";
Already tried it, no problem

1.The following is the class PageResultSet that implements paging

package page.bean; 
import java.util.*; 
public class PageResultSet { 
/** 
* 分页数据 
*/ 
private Collection data = null; 
/** 
* 当前页 
*/ 
private int curPage; 
/** 
* 每页显示的记录数 
*/ 
private int pageSize; 
/** 
* 记录行数 
*/ 
private int rowsCount; 
/** 
* 页数 
*/ 
private int pageCount; 
public PageResultSet(Collection data) { 
this.data = data; 
this.curPage = 1; 
this.pageSize = 10; 
this.rowsCount = data.size(); 
this.pageCount = (int) Math.ceil((double) rowsCount / pageSize); 
} 
public PageResultSet(Collection data, int curPage) { 
this.data = data; 
this.curPage = curPage; 
this.pageSize = 10; 
this.rowsCount = data.size(); 
this.pageCount = (int) Math.ceil((double) rowsCount / pageSize); 
} 
public PageResultSet(Collection data, int curPage, int pageSize) { 
this.data = data; 
this.curPage = curPage; 
this.pageSize = pageSize; 
this.rowsCount = data.size(); 
this.pageCount = (int) Math.ceil((double) rowsCount / pageSize); 
} 
/** 
* getCurPage:返回当前的页数 
* 
* @return int 
*/ 
public int getCurPage() { 
return curPage; 
} 
/** 
* getPageSize:返回分页大小 
* 
* @return int 
*/ 
public int getPageSize() { 
return pageSize; 
} 
/** 
* getRowsCount:返回总记录行数 
* 
* @return int 
*/ 
public int getRowsCount() { 
return rowsCount; 
} 
/** 
* getPageCount:返回总页数 
* 
* @return int 
*/ 
public int getPageCount() { 
return pageCount; 
} 
/** 
* 第一页 
* 
* @return int 
*/ 
public int first() { 
return 1; 
} 
/** 
* 最后一页 
* 
* @return int 
*/ 
public int last() { 
return pageCount; 
} 
/** 
* 上一页 
* 
* @return int 
*/ 
public int previous() { 
return (curPage - 1 < 1) ? 1 : curPage - 1; 
} 
/** 
* 下一页 
* 
* @return int 
*/ 
public int next() { 
return (curPage + 1 > pageCount) ? pageCount : curPage + 1; 
} 
/** 
* 第一页 
* 
* @return boolean 
*/ 
public boolean isFirst() { 
return (curPage == 1) ? true : false; 
} 
/** 
* 最后一页 
* 
* @return boolean 
*/ 
public boolean isLast() { 
return (curPage == pageCount) ? true : false; 
} 
/** * 获取当前页数据 
* 
* @return Collection 
*/ 
public Collection getData() { 
Collection curData = null; 
if (data != null) { 
int start = (curPage - 1) * pageSize; 
int end = 0; 
if (start + pageSize > rowsCount) 
end = rowsCount; 
else 
end = start + pageSize; 
ArrayList arrayCurData = new ArrayList(); 
ArrayList arrayData = null; 
Vector vectorCurData = new Vector(); 
Vector vectorData = null; 
boolean isArray = true; 
if (data instanceof ArrayList) { 
arrayData = (ArrayList) data; 
isArray = true; 
} else if (data instanceof Vector) { 
vectorData = (Vector) data; 
isArray = false; 
} 
for (int i = start; i < end; i++) { 
if (isArray) { 
arrayCurData.add(arrayData.get(i)); 
} else { 
vectorData.add(vectorData.elementAt(i)); 
} 
} 
if (isArray) { 
curData = (Collection) arrayCurData; 
} else { 
curData = (Collection) vectorCurData; 
} 
} 
return curData; 
} 
/** 
* 获取工具条 
* 
* @return String 
*/ 
public String getToolBar(String fileName) { 
String temp = ""; 
if (fileName.indexOf("?") == -1) { 
temp = "?"; 
} else { 
temp = "&"; 
} 
String str = "<form method=&#39;post&#39; name=&#39;frmPage&#39; action=&#39;" + fileName + "&#39;>"; 
str += "<p align=&#39;center&#39;>"; 
if (isFirst()) 
str += "首页 上一页 "; 
else { 
str += "<a href=&#39;" + fileName + temp + "cur_page=1&#39;>首页</a> "; 
str += "<a href=&#39;" + fileName + temp + "cur_page=" + (curPage - 1) + "&#39;>上一页</a> "; 
} 
if (isLast()) 
str += "下一页 尾页 "; 
else { 
str += "<a href=&#39;" + fileName + temp + "cur_page=" + (curPage + 1) + "&#39;>下一页</a> "; 
str += "<a href=&#39;" + fileName + temp + "cur_page=" + pageCount + "&#39;>尾页</a> "; 
} 
str += " 共<b>" + rowsCount + "</b>条记录 "; 
str += " 转到<select name=&#39;page&#39; onChange="location=&#39;" + fileName 
+ temp + "cur_page=&#39;+this.options[this.selectedIndex].value">"; 
for (int i = 1; i <= pageCount; i++) { 
if (i == curPage) 
str += "<option value=&#39;" + i + "&#39; selected>第" + i + "页</option>"; 
else 
str += "<option value=&#39;" + i + "&#39;>第" + i + "页</option>"; 
} 
str += "</select></p></form>"; 
return str; 
} 
}

2.The following is Action

/* 
* Generated by MyEclipse Struts 
* Template path: templates/java/JavaClass.vtl 
*/ 
package struts.action; 
import java.util.Collection; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
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 page.bean.DatabaseConn; 
import page.bean.PageResultSet; 
import page.bean.ContactBO; 
import struts.form.LoginForm; 
/** 
* MyEclipse Struts 
* Creation date: 04-02-2008 
* 
* XDoclet definition: 
* @struts.action path="/login" name="loginForm" input="/login.jsp" scope="request" validate="true" 
* @struts.action-forward name="sss" path="/index.jsp" 
*/ 
public class LoginAction extends Action { 
/* 
* Generated Methods 
*/ 
/** 
* Method execute 
* @param mapping 
* @param form 
* @param request 
* @param response 
* @return ActionForward 
*/ 
public ActionForward execute(ActionMapping mapping, ActionForm form, 
HttpServletRequest request, HttpServletResponse response) { 
LoginForm loginForm = (LoginForm) form; 
ContactBO userBO=new ContactBO(); 
//先从业务处理逻辑类中取出数据(ArrayList或Vector格式) 
Collection data; 
try { 
data = userBO.findContact(DatabaseConn.getConnection()); 
//再得到当前页curPage和每页记录数pageSize 
//int curPage = Integer.parseInt((String)request.getParameter("cur_page")); 
int curPage = 1; 
String cur = request.getParameter("cur_page"); 
System.out.println("--------------: "+cur); 
if(cur!=null && cur !=""){ 
curPage = new Integer(cur).intValue(); 
} 
int pageSize=10; 
//然后生成PageResultSet对象 
PageResultSet dataList = new PageResultSet(data, curPage, pageSize); 
request.setAttribute("usersList", dataList); 
return mapping.findForward("sss"); 
} catch (Exception e) { 
e.printStackTrace(); 
return mapping.getInputForward(); 
} 
} 
}

3. The following is the page showing pagination

<%@ page language="java" import="java.util.*,page.bean.Contact,page.bean.PageResultSet" 
pageEncoding="gb2312"%> 
<% 
String path = request.getContextPath(); 
String basePath = request.getScheme() + "://" 
+ request.getServerName() + ":" + request.getServerPort() 
+ path + "/"; 
%> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
<head> 
<base href="<%=basePath%>"> 
<title>My JSP &#39;index.jsp&#39; starting page</title> 
<meta http-equiv="pragma" content="no-cache"> 
<meta http-equiv="cache-control" content="no-cache"> 
<meta http-equiv="expires" content="0"> 
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> 
<meta http-equiv="description" content="This is my page"> 
<!-- 
<link rel="stylesheet" type="text/css" href="styles.css"> 
--> 
</head> 
<body> 
<table border="1"> 
<% 
PageResultSet pageResultSet = (PageResultSet) request.getAttribute("usersList"); 
ArrayList usersList = (ArrayList) pageResultSet.getData(); 
for (int i = 0; i < usersList.size(); i++) { 
Contact co = (Contact) usersList.get(i); 
%> 
<tr> 
<td> 
<%=co.getId() %> 
</td> 
<td> 
<a href="login.do?id=<%=co.getId()%>"><%=co.getUsername()%></a> 
</td> 
<td> 
<%=co.getMobile() %> 
</td> 
<td> 
<%=co.getMail() %> 
</td> 
<td> 
<%=co.getPhone() %> 
</td> 
<td> 
<%=co.getMem() %> 
</td> 
<td> 
<%=co.getLastcontact() %> 
</td> 
</tr> 
<% 
} 
%> 
</table> 
<!-- 显示分页工具栏 --> 
<%=pageResultSet.getToolBar("login.do")%> 
</body> 
</html>


For more related articles about a practical JSP paging code, please pay attention to the PHP Chinese website!


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn