struts+spring+hibernate+自定义标签的 分页方案

首先编写一个分页用的类
[code]

import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import javax.servlet.jsp.tagext.BodyTagSupport;
import com.xfaccp.hibernate.dao.CustomersDAO;

public class PagTag extends BodyTagSupport {

private HttpServletRequest request;

private int pageSize; // 每页显示的记录数

private String tableName = null; // 表名

private int tableSize = 0; // 表中信息的总数量

private int pageCount = 0; // 共有几页

private int pages = 1; // 当前页数

private int startNum; // 起始记录数

private CustomersDAO cDAO = null;

private List result = null;

private HttpSession session = null;


private String operate;


// 设置分页基本信息
public int baseSetting() {

// 计算总页数
if (tableSize % pageSize != 0) {
this.pageCount = (tableSize / pageSize) + 1;
} else {
this.pageCount = tableSize / pageSize;
}
// 设置总共有多少页
pageContext.setAttribute("pageCount", new Integer(pageCount));

if (request.getParameter("pages") != null) {
this.pages = Integer.parseInt(request.getParameter("pages"));
System.out.println("pages=" + pages);
}
if (pages < 1) {
pages = 1;
}
if (pages > pageCount) {
pages = pageCount;
}
// 设置当为第几页
pageContext.setAttribute("pages", new Integer(pages));

startNum = pageSize * (pages - 1);
if (startNum < 0) {
startNum = 1;
}
return startNum;

}

public int doStartTag() {
session = request.getSession();
cDAO = new CustomersDAO();

if (request.getParameter("operate") != null)
this.operate = request.getParameter("operate");
System.out.println("operate"+operate);
try {
if (operate == null) {
System.out.println("accp");
tableSize = cDAO.getTableSize(); // 设置表中信息的总数量

int startNm = this.baseSetting();

System.out.println("startNum" + startNum);
System.out.println("pagesize" + pageSize);
result = cDAO.getTableList(startNm, pageSize);

} else {
tableSize = cDAO.searchTablePartSize();
int startNum=this.baseSetting();
result=cDAO.searchTableList(startNum, pageSize);
}
session.setAttribute("result", result);

} catch (Exception sl) {
sl.printStackTrace();

}
return EVAL_BODY_INCLUDE;
}

public void setRequest(HttpServletRequest request) {
this.request = request;
}

public String getOperate() {
return operate;
}

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

public int getPageSize() {
return pageSize;
}

public void setTableName(String tableName) {
this.tableName = tableName;
}


}

[/code]
然后编写一个tld 文件
[code]
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib
PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
"http://java.sun.com/j2ee/dtd/web-jsptaglibrary_1_2.dtd">

<taglib>
<tlib-version>1.0</tlib-version>
<jsp-version>1.1</jsp-version>
<short-name>show</short-name>
<uri>http://com.yandong.page</uri>
<tag>
<name>show</name>
<tag-class>com.yandong.common.tag.PagTag</tag-class>
<body-content>jsp</body-content>
<attribute>
<name>request</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>pageSize</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>tableName</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>

</taglib>
[/code]
经过这样的配置就ok了,业务逻辑我就不写了
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值