`

Struts分页代码

 
阅读更多

声明:本文代码来自“西安健飞软件”内部,由小洋提供全套技术支持!在此感谢!

PageList
package com.hp.struts.util;
import java.util.List;
publicclass PageList {
private Pages page=null; //分页对象
private List objectList=null; //对象集合
private String pageStr=""; //分页字符串
public List getObjectList() {
returnobjectList;
}
publicvoid setObjectList(List objectList) {
this.objectList = objectList;
}
public Pages getPage() {
returnpage;
}
publicvoid setPage(Pages page) {
this.page = page;
pageStr=page.getLastPageBreak();
}
public String getPageStr() {
returnpageStr;
}
publicvoid setPageStr(String pageStr) {
this.pageStr = pageStr;
}
}
Pages
package com.hp.struts.util;
import javax.servlet.http.HttpServletRequest;
publicclass Pages {
private String fileName="";
privateintpageSize=2; //当页显示记录数
privateintallPage=1; //总页数
privateintcPage=1; //当前页
privateintsPage=1; //当前页开始记录数
privateintallRecord=1; //总记录数
private String lastPageBreak=""; //分页字符串
public Pages(){
}
public Pages(String fileName,HttpServletRequest request){
this.fileName=request.getContextPath()+fileName;
//获得当前页
String cPageStr = request.getParameter("cpage")==null?"1":request.getParameter("cpage");
int cPageInt = 0;
try
{
cPageInt = Integer.parseInt(cPageStr);
}catch(Exception e){
System.out.println("com.s6.util.Pages = "+e.getMessage());
cPageInt = 1;
}finally{
cPage = cPageInt;
}
}
//计算总页数,判断当前页的合法性,计算当前页的开始记录数,生成分页字符串
publicvoid doPage(){
//计算总页数
this.allPage=(int)(this.allRecord+this.pageSize-1)/this.pageSize;
//判断当前页的合法性
if(this.cPage<0){
this.cPage=1;
}
if(this.cPage>this.allPage){
this.cPage=this.allPage;
}
//计算当前页开始记录数
this.sPage=(this.cPage-1)*this.pageSize+1;
//生成分页字符串
StringBuffer str=new StringBuffer();
//判断是否有问号
if(this.fileName.indexOf("?")==-1){
this.fileName=this.fileName+"?1=1";
}
str.append("<table width=/"100%/" height=/"100%/">");
//添加表单
str.append("<form name=/"pagelist/" method=/"post/" action=/"");
str.append(this.fileName+"/">");
str.append("<tr><td width=/"100%/" height=/"100%/" align=/"center/" valign=/"middle/">");
str.append("总纪录数"+this.allRecord+"");
str.append("&nbsp;");
//首页
if(this.cPage>1){
str.append("<a href="+this.fileName+"&cpage=1>首页</a>");
}else{
str.append("首页");
}
str.append("&nbsp;");
//上一页
if(this.cPage>1){
str.append("<a href=");
str.append(this.fileName+"&cpage=");
str.append(this.cPage-1);
str.append(">上一页</a>");
}else{
str.append("上一页");
}
str.append("&nbsp;");
//下一页
if(this.cPage<this.allPage){
str.append("<a href=");
str.append(this.fileName+"&cpage=");
str.append(this.cPage+1);
str.append(">下一页</a>");
}else{
str.append("下一页");
}
str.append("&nbsp;");
//末页
if(this.cPage<this.allPage){
str.append("<a href=");
str.append(this.fileName+"&cpage=");
str.append(this.allPage);
str.append(">末页</a>");
}else{
str.append("末页");
}
str.append("&nbsp;");
//第几页
str.append("");
str.append(this.cPage);
str.append("");
str.append("&nbsp;");
//共几页
str.append("");
str.append(this.allPage);
str.append("");
str.append("&nbsp;");
//跳转页
for(int i=1;i<=this.allPage;i++){
str.append("&nbsp;");
if(i==this.cPage){
str.append(i);
}else{
str.append("<a href=");
str.append(this.fileName+"&cpage=");
str.append(i);
str.append(">"+i+"</a>");
}
}
//str.append("&nbsp;&nbsp;跳转到");
//str.append("<select name=/"cpage/" onchange=/"document.pagelist.submit()/" >");
//for(int i=1;i<=this.allPage;i++){
// str.append("<option value=/"");
// str.append(i);
// str.append("/"");
// if(this.cPage==i){
// str.append(" selected");
// }
// str.append(">");
// str.append(i);
// str.append("</option>");
//}
//str.append("</select>");
str.append("</td></tr></form>");
str.append("</table>");
lastPageBreak=str.toString();
}
publicint getAllPage() {
returnallPage;
}
publicvoid setAllPage(int allPage) {
this.allPage = allPage;
}
publicint getCPage() {
returncPage;
}
publicvoid setCPage(int page) {
cPage = page;
}
public String getFileName() {
returnfileName;
}
publicvoid setFileName(String fileName) {
this.fileName = fileName;
}
public String getLastPageBreak() {
returnlastPageBreak;
}
publicvoid setLastPageBreak(String lastPageBreak) {
this.lastPageBreak = lastPageBreak;
}
publicint getPageSize() {
returnpageSize;
}
publicvoid setPageSize(int pageSize) {
this.pageSize = pageSize;
}
publicint getSPage() {
doPage();
returnsPage;
}
publicvoid setSPage(int page) {
sPage = page;
}
publicint getAllRecord() {
returnallRecord;
}
publicvoid setAllRecord(int allRecord) {
this.allRecord = allRecord;
}
}
Action类里的分页方法(函数)
public ActionForward fenye(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
String userId=request.getParameter("userId");
UserDAO userDao=new UserDAO();
Pages pages = new Pages("/user.do?method=fenye",request);
pages.setPageSize(5);//当前页显示的记录数
PageList pageList = userDao.getUserpagelist(pages);
request.setAttribute("emps",pageList);
return mapping.findForward("fenye");
}
DAO里的分页方法
public PageList getUserpagelist(Pages pages)
{
PageList pageList = new PageList();
List list = new ArrayList();
String sql="select * from T_USER_SYS";
//执行SQL语句获得结果集
ResultSet rs=this.doExcuteQuery(sql);
try {
//首先将光标移动到最后一行
rs.last();
pages.setAllRecord(rs.getRow());//记录集总行数
rs.absolute(pages.getSPage());//光标定位到页的第一行
int i=0;//循环变量
//判断记录总行数是否大于0,并循环创建USER对象
if(pages.getAllRecord()>0)
{
do{
UserBean userBean=new UserBean();
userBean.setUserId(rs.getString(1));
userBean.setUserName(rs.getString(2));
userBean.setUserPwd(rs.getString(3));
userBean.setUserState(rs.getString(4));
list.add(userBean);
i++;
}while(rs.next()&&i<pages.getPageSize());
}
} catch (SQLException e) {
e.printStackTrace();
}finally
{
this.closeConn();
}
pageList.setPage(pages);
pageList.setObjectList(list);
return pageList;
}
分页的JSP页面
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
<%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html:html lang="true">
<head>
<html:base />
<title>fenye.jsp</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>
<c:forEach items="${emps.objectList}"var="emp">
<tr >
<td height="25" align="cneter" class="table3"bgcolor="dfdfdf">
<input type="checkbox" name="ck2" value="${emp.userId}"/></td>
<td align="center" class="table3" bgcolor="dfdfdf">${emp.userName}</td>
<td align="center" valign="middle" class="table3" bgcolor="dfdfdf">${emp.userPwd}</td>
<td align="center" valign="middle" class="table3" bgcolor="dfdfdf">
<html:link action="/deluser.do?userId=${emp.userId}">del</html:link>
</td>
</tr>
</c:forEach>
<tr>
<td align="left"><c:out value="${emps.pageStr}"escapeXml="false"></c:out></td>
</tr>
</table>
</body>
</html:html>

SSH中的DAO

public PageList userList(Pages pages) {
PageList pageList = new PageList();
List list = new ArrayList();
Session session = this.getSession();
Transaction t = session.beginTransaction();
// 获得结果集
Query query = session.createQuery("from jfis.bean.JfisUserSys");
//记录集总行数
pages.setAllRecord(query.list().size());
query.setFirstResult(pages.getSPage()-1);
query.setMaxResults(5);
List rs = query.list();
Iterator iterator = rs.iterator();
// 得到分页字符串
pages.getSPage();
int i = 0;// 循环变量
// 判断记录总行数是否大于0,并循环创建USER对象
if (pages.getAllRecord() > 0) {
do {
list = rs;
i++;
} while (iterator.hasNext() && i < pages.getPageSize());
pageList.setPage(pages);
pageList.setObjectList(list);
t.commit();
session.close();
}
return pageList;
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics