struts中的分页

转载:http://hi.baidu.com/javajavajava/blog

package com.hqh.page.util;

import java.util.List;

public class PageForm {
private int currentPage = 1;// 当前页
private int prePage = 0;// 上一页
private int nextPage = 0;// 下一页
private int pageSize = 10;// 每页显示的行数
private int totalPage = 0;// 总页数
private int totalSize = 0;// 总纪录数
private List list;

public PageForm() {

}

/**
*
* @param currentPage
* 当前页
* @param pageSize
* 每页显示的行数
*/
public PageForm(int currentPage, int pageSize) {
this.currentPage = currentPage;
this.pageSize = pageSize;
}

public int getCurrentPage() {
return currentPage;
}

public void setCurrentPage(int currentPage) {
if (currentPage < 1) {
this.currentPage = 1;
} else {
this.currentPage = currentPage;
}
}

// 上一页
public int getPrePage() {
if (currentPage > 1) {
prePage = currentPage - 1;
} else {
prePage = 0;
}
return prePage;
}

// 下一页
public int getNextPage() {
if (currentPage < totalPage) {
nextPage = currentPage + 1;
} else {
nextPage = totalPage;
}
return nextPage;
}

public int getPageSize() {
if (this.pageSize <= 0) {
this.pageSize = 10;
}
return pageSize;
}

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

public int getTotalPage() {
if (getTotalSize() % pageSize == 0) {// 100%10->totalPage=10
this.totalPage = getTotalSize() / pageSize;
} else {
this.totalPage = getTotalSize() / pageSize + 1;
}
return this.totalPage;
}

public int getTotalSize() {
return this.list.size();
}

public List getList() {
return list;
}

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

可重复利用的page.jsp

<%@ page language="java" pageEncoding="GB18030"%>

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

<bean:define id="pageForm" name="pageForm" type="com.hqh.page.util.PageForm"></bean:define>
<bean:define id="actionPath" name="actionPath"></bean:define>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html:html lang="true">
<head>
<html:base />
<title></title>
</head>

<body>
<table>
<tr>
<td>共<bean:write name="pageForm" property="totalSize"/>条信息</td>
<td>
<logic:equal name="pageForm" value="1" property="currentPage">首页</logic:equal>
<logic:notEqual name="pageForm" value="1" property="currentPage">
<a href="<%=actionPath %>?currentPage=1&pageSize=<bean:write name="pageForm" property="pageSize"/>">首页</a>
</logic:notEqual>
</td>
<td>
<logic:equal name="pageForm" property="currentPage" value="1">上一页</logic:equal>
<logic:notEqual name="pageForm" property="currentPage" value="1">
<a href="<%=actionPath %>?currentPage=<bean:write name="pageForm" property="prePage"/>&pageSize=<bean:write name="pageForm" property="pageSize"/>">上一页</a>
</logic:notEqual>
</td>
<td>
<logic:equal name="pageForm" property="currentPage" value="${pageForm.totalPage}">下一页</logic:equal>
<logic:notEqual name="pageForm" property="currentPage" value="${pageForm.totalPage}">
<a href="<%=actionPath %>?currentPage=<bean:write name="pageForm" property="nextPage"/>&pageSize=<bean:write name="pageForm" property="pageSize"/>">下一页</a>
</logic:notEqual>
</td>
<td>
<logic:equal name="pageForm" property="currentPage" value="${pageForm.totalPage}" >尾页</logic:equal>
<logic:notEqual name="pageForm" property="currentPage" value="${pageForm.totalPage}" >
<a href="<%=actionPath %>?currentPage=<bean:write name="pageForm" property="totalPage"/>&pageSize=<bean:write name="pageForm" property="pageSize"/>">尾页</a>
</logic:notEqual>
</td>
<td>
跳转到第<select name='currentPage'
onChange='javascript:location=this.options[this.selectedIndex].value;'>

<%
for (int i = 1; i <= pageForm.getTotalPage(); i++) {
if (i == (pageForm.getCurrentPage())) {%>
<option value="<%=actionPath %>?currentPage=<%=i%>&pageSize=<%=pageForm.getPageSize()%>+" selected><%=i %></option>
<% } else {%>
<option value="<%=actionPath %>?currentPage=<%=i%>&pageSize=<%=pageForm.getPageSize()%>"><%=i %></option>
<%}}%>
</select>页
每页行数 <select name='pageSize'
onChange='javascript:location=this.options[this.selectedIndex].value;'>
<%
for (int i = 5; i <= 30; i=i+5) {
if (i == pageForm.getPageSize()) {%>
<option value="<%=actionPath %>?currentPage=1&pageSize=<%=i%>" selected><%=i%></option>
<%} else {%>
<option value="<%=actionPath %>?currentPage=1&pageSize=<%=i%>"><%=i%></option>
<%}}%>
</select>
</td>
<td>当前:<bean:write name="pageForm" property="currentPage"/>/<bean:write name="pageForm" property="totalPage"/>页</td>
</tr>
</table>
</body>
</html:html>

action:

/*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl
*/
package com.hqh.page.struts.action;

import java.util.List;

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 com.hqh.page.bean.People;
import com.hqh.page.dao.PeopleDAO;
import com.hqh.page.util.PageForm;

/**
* MyEclipse Struts Creation date: 12-24-2007
*
* XDoclet definition:
*
* @struts.action validate="true"
*/
public class PeopleAction2 extends Action {
/*
* Generated Methods
*/
private PeopleDAO peopleDAO = null;

public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
peopleDAO = new PeopleDAO();
List<People> list = peopleDAO.getAllPeople();
PageForm pageForm = new PageForm(1, 10);
pageForm.setList(list);
String currentPage = request.getParameter("currentPage");//
if (currentPage != null) {
try {
pageForm.setCurrentPage(Integer.parseInt(currentPage));
} catch (NumberFormatException e) {
//如果从地址拦输入不合法的参数,就默认跳到第一页
pageForm.setCurrentPage(1);
}
}
String pageSize = request.getParameter("pageSize");// 一页显示几行
if (pageSize != null) {
try {
pageForm.setPageSize(Integer.parseInt(pageSize));
} catch (NumberFormatException e) {
//如果从地址拦输入不合法的参数,默认每页显示10行
pageForm.setPageSize(10);
}
}
request.setAttribute("pageForm", pageForm);//分页中要用到
request.setAttribute("actionPath", "second.do");// 设置该action的请求路径,也就是该action在struts-config.xml中对应的path
return mapping.findForward("peopleList");//此处跳到pagination2.jsp
}
}

测试页面(pagination2.jsp):

<%@ page language="java" pageEncoding="GB18030"%>

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

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html:html lang="true">
<head>
<html:base />
<title>分页</title>
</head>
<bean:define id="pageForm" name="pageForm"
type="com.hqh.page.util.PageForm"></bean:define>
<bean:define id="actionPath" name="actionPath"></bean:define>
<body>
下面是从数据库中取到的数据:
<table width="700" border="1" height="73">
<tbody>
<tr>
<td>
编号
</td>
<td>
姓名
</td>
<td>
性别
</td>
<td>
年龄
</td>
<td>
职位
</td>
</tr>
<logic:iterate id="people" name="pageForm" property="list"
type="com.hqh.page.bean.People"
offset="${(pageForm.currentPage-1)*(pageForm.pageSize)}"
length="${pageForm.pageSize}">
<tr>
<td>
<bean:write name="people" property="id" />
</td>
<td>
<bean:write name="people" property="name" />
</td>
<td>
<bean:write name="people" property="sex" />
</td>
<td>
<bean:write name="people" property="age" />
</td>
<td>
<bean:write name="people" property="profession" />
</td>
</tr>
</logic:iterate>
</tbody>
</table>
<jsp:include page="page.jsp"></jsp:include>
</body>
</html:html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值