Heim  >  Artikel  >  Web-Frontend  >  Ein praktischer JSP-Paging-Code

Ein praktischer JSP-Paging-Code

高洛峰
高洛峰Original
2016-12-29 15:09:211467Durchsuche

Ein begeisterter Internetnutzer antwortete:
str += "Gehe zu7b708ea332df36e6720660027f7ce243";

3. Die folgende Seite zeigt die Paginierung

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; 
} 
}

/* 
* 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(); 
} 
} 
}

Weitere verwandte Artikel über einen praktischen JSP-Paging-Code finden Sie hier zur chinesischen PHP-Website!

<%@ 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>


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn