struts分页 分数不多哦。你可以用 STRUST的前台分页技术、数据库、存储过程也可以。如果你用到了HIBERNATE。可以尝试下它的简易分页。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 //下面是我从自己写以前写的例子中截取出来的代码 希望对 楼主 有帮助 /**分页实体类**/package com.pagination;import java.util.List;public class Pagination { /** * 总页数 */ private int totalityPage; /** * 页面大小 */ private int pageSize=5;//默认为5条 可以在 XML 文件里配置页面 大小方便维护 /** * 数据集合 */ private List data; /** * 当前页 */ private int currentlyPage=1; /** * 总共记录 */ private int allRegister; public int getAllRegister() { return allRegister; } public void setAllRegister(int allRegister) { this.allRegister = allRegister; } public int getCurrentlyPage() { return currentlyPage; } public void setCurrentlyPage(int currentlyPage) { this.currentlyPage = currentlyPage; } public List getData() { return data; } public void setData(List data) { this.data = data; } public int getPageSize() { return pageSize; } public void setPageSize(int pageSize) { this.pageSize = pageSize; } public int getTotalityPage() { return totalityPage; } public void setTotalityPage(int totalityPage) { this.totalityPage = totalityPage; }}==================================================================== /*DAO 要写两个方法 一个用与获得分页数据 另一个用于获得总页数*/ 下面的两个方法是用 hibernate dao的 如果你不用hibernate 可以自己稍加改动就可以了/***获得数据集合 参数currentlyPage: 代表当前页;参数pageSize:代表页面大小 */ public List findAll(int currentlyPage ,int pageSize) { log.debug("finding all Employee instances"); if(pageSize == 0){ pageSize = 5;//如果页面面大小为空 设置五 5 } if(currentlyPage<1){ //当前页 下页第一页 currentlyPage = 1;//让当前页等于 第一页 } int totality = this.getTotalityPage(pageSize);//获得总页数 if(currentlyPage >totality){ //当前页大于 最后一页 currentlyPage = totality; //让当前页等于 最后一页 } currentlyPage=(currentlyPage-1)*5;//计算当前数据为第几行 try { String queryString = "from Employee"; Query queryObject = getSession().createQuer(queryString); queryObject.setFirstResult(currentlyPage);//设置从第几行取数据 queryObject.setMaxResults(pageSize);//设置页面大小 return queryObject.list();//获得数据集 } catch (RuntimeException re) { log.error("find all failed", re); throw re; } } //获得总页数 参数 pageSize 为页面大小 public int getTotalityPage(int pageSize){ if(pageSize == 0){ pageSize = 5; } log.debug("finding all Employee instances"); try { String queryString = "select count(*) from Employee"; Query query = getSession().createQuery(queryString); List list =query.list(); Object obj = (Object) list.get(0);//获得总记录数 int curr = Integer.parseInt(obj.toString()); int totalityPage =curr/pageSize;//计算总页数 if(curr%pageSize!=0){ //如果有余数 totalityPage +=1; //总页数 加 1 } return totalityPage; } catch (RuntimeException re) { log.error("find all failed", re); throw re; } } // 显示 action public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { // TODO Auto-generated method stub //取得 分页对象 page 并放入 session 中 HttpSession session = request.getSession(true); Pagination page = (Pagination) session.getAttribute("page"); if(page == null){ page = new Pagination(); session.setAttribute("page", page); } //获得当前页 从页面传过来的 String cpage = request.getParameter("currentlyPage"); int currentlyPage=1; if(cpage == null){ currentlyPage=1; }else{ currentlyPage = Integer.parseInt(cpage); } page.setCurrentlyPage(currentlyPage);//设置当前页 page.setPageSize(5); //设置页面大小 EmpBusi empbusi = new EmpBusi(); List empall =empbusi.findAll(page.getCurrentlyPage(),page.getPageSize()); int totalityPage = empbusi.getTotalityPage(page.getPageSize()); page.setTotalityPage(totalityPage);//设置总页数 page.setData(empall); //设置数据集 return mapping.findForward("ok"); //跳转 }===============================================================================显示界面=======================<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>JSP for AddEmpForm form</title> </head> <body> <p align="center">显示界面 <a href="addEmp.jsp">添加</a></p> <table width="800" border="1" align="center"> <tr> <td width="18">编号</td> <td width="18">姓名</td> <td width="18">性别</td> <td width="18">年龄</td> <td width="18">部门</td> <td width="18">爱好</td> <td width="18">修改</td> <td width="23">删除</td> </tr> <!-- 用逻辑标库的迭代标签输出数据 --> <logic:iterate id="emp" name="page" property="data"> <tr> <td><bean:write name="emp" property="empID"/></td> <td><bean:write name="emp" property="empName"/></td> <td><bean:write name="emp" property="empSex"/></td> <td><bean:write name="emp" property="empBirthday"/></td> <td><bean:write name="emp" property="empPost"/></td> <td> <nested:iterate id="elove" name="emp" property="empLove"> <bean:write name="elove" property="love"/> </nested:iterate> </td> <td><a href="${pageContext.request.contextPath}/findAmendEmp.do?empID=<bean:write name="emp" property="empID"/>">修改</a></td> <td><a href="${pageContext.request.contextPath}/delEmp.do?empID=<bean:write name="emp" property="empID"/>">删除</a></td> </tr> </logic:iterate> </table> <!------------- 分页操作 ----------> <div align="center"> <a href="${pageContext.request.contextPath}/display.do?currentlyPage=1">首页</a> <!-------当前页 不小于 1 时 显示"上一页"为超级链接----------> <logic:notEqual value="1" property="currentlyPage" name="page"> <a href="${pageContext.request.contextPath}/display.do?currentlyPage=${page.currentlyPage-1}">上一页</a> </logic:notEqual> <!-------当前页等于1 时 显示"上一页" 为上一页 取消超链 ----> <logic:equal value="1" property="currentlyPage" name="page">上一页</logic:equal> <!-------当前页 小于 最大页时 显示"下一页" 为超链接-------> <logic:notEqual value="${page.totalityPage}" property="currentlyPage" name="page"> <a href="${pageContext.request.contextPath}/display.do?currentlyPage=${page.currentlyPage+1}">下一页</a> </logic:notEqual> <!-------当前页 等于于 最大页时 显示"下一页" 为下一页 超链失效-------> <logic:equal value="${page.totalityPage}" property="currentlyPage" name="page">下一页</logic:equal> <a href="${pageContext.request.contextPath}/display.do?currentlyPage=${page.totalityPage }">末页</a> </div> </body></html>===================================终于加完注释了^_^ 希望楼主能有灵感 太困了 其中注释不清楚或有错误请原谅!! 睡觉喽!!!晚安!! 不知道你是大哥还是大姐,真的太感谢你了我是一个j2ee新手你的代码让我有许多收获!真想和你好好聊聊!可是在这里又不好从和说起!希望收到你的邮件! 自己写一个分页标签或者使用displaytag插件。 spring 3.0中怎么没有spring.jar hibernat更新属性的机制 java 如何调用Sqlserver存储过程? 关于struts validator 问题报错 初学者请教各位高手! 自动计算指定数量的表格,200分求救! 关于servlet和javabean的应用请教! 用什么样的java或者sql语句可以彻底清空一个已经连接的*.dbf数据库? soap是什么?哪有这方面的教程? 谁给介绍一本书或者给我个例子? 关于Spring的配置问题 hibernate中一级缓存的问题
/**分页实体类**/
package com.pagination;
import java.util.List;
public class Pagination {
/**
* 总页数
*/
private int totalityPage;
/**
* 页面大小
*/
private int pageSize=5;//默认为5条 可以在 XML 文件里配置页面 大小方便维护
/**
* 数据集合
*/
private List data;
/**
* 当前页
*/
private int currentlyPage=1;
/**
* 总共记录
*/
private int allRegister;
public int getAllRegister() {
return allRegister;
}
public void setAllRegister(int allRegister) {
this.allRegister = allRegister;
}
public int getCurrentlyPage() {
return currentlyPage;
}
public void setCurrentlyPage(int currentlyPage) {
this.currentlyPage = currentlyPage;
}
public List getData() {
return data;
}
public void setData(List data) {
this.data = data;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getTotalityPage() {
return totalityPage;
}
public void setTotalityPage(int totalityPage) {
this.totalityPage = totalityPage;
}
}
====================================================================
/*DAO 要写两个方法 一个用与获得分页数据 另一个用于获得总页数*/
下面的两个方法是用 hibernate dao的 如果你不用hibernate 可以自己稍加改动就可以了
/**
*获得数据集合 参数currentlyPage: 代表当前页;参数pageSize:代表页面大小 */
public List findAll(int currentlyPage ,int pageSize) {
log.debug("finding all Employee instances");
if(pageSize == 0){
pageSize = 5;//如果页面面大小为空 设置五 5
}
if(currentlyPage<1){ //当前页 下页第一页
currentlyPage = 1;//让当前页等于 第一页
}
int totality = this.getTotalityPage(pageSize);//获得总页数
if(currentlyPage >totality){ //当前页大于 最后一页
currentlyPage = totality; //让当前页等于 最后一页
}
currentlyPage=(currentlyPage-1)*5;//计算当前数据为第几行
try {
String queryString = "from Employee";
Query queryObject = getSession().createQuer(queryString);
queryObject.setFirstResult(currentlyPage);//设置从第几行取数据
queryObject.setMaxResults(pageSize);//设置页面大小
return queryObject.list();//获得数据集
} catch (RuntimeException re) {
log.error("find all failed", re);
throw re;
}
}
//获得总页数 参数 pageSize 为页面大小
public int getTotalityPage(int pageSize){
if(pageSize == 0){
pageSize = 5;
}
log.debug("finding all Employee instances");
try {
String queryString = "select count(*) from Employee";
Query query = getSession().createQuery(queryString);
List list =query.list();
Object obj = (Object) list.get(0);//获得总记录数
int curr = Integer.parseInt(obj.toString());
int totalityPage =curr/pageSize;//计算总页数
if(curr%pageSize!=0){ //如果有余数
totalityPage +=1; //总页数 加 1
}
return totalityPage;
} catch (RuntimeException re) {
log.error("find all failed", re);
throw re;
}
}
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
// TODO Auto-generated method stub
//取得 分页对象 page 并放入 session 中
HttpSession session = request.getSession(true);
Pagination page = (Pagination) session.getAttribute("page");
if(page == null){
page = new Pagination();
session.setAttribute("page", page);
}
//获得当前页 从页面传过来的
String cpage = request.getParameter("currentlyPage");
int currentlyPage=1;
if(cpage == null){
currentlyPage=1;
}else{
currentlyPage = Integer.parseInt(cpage);
}
page.setCurrentlyPage(currentlyPage);//设置当前页
page.setPageSize(5); //设置页面大小
EmpBusi empbusi = new EmpBusi();
List empall =empbusi.findAll(page.getCurrentlyPage(),page.getPageSize());
int totalityPage = empbusi.getTotalityPage(page.getPageSize());
page.setTotalityPage(totalityPage);//设置总页数
page.setData(empall); //设置数据集
return mapping.findForward("ok"); //跳转
}
=======================================================
========================显示界面=======================
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>JSP for AddEmpForm form</title>
</head>
<body>
<p align="center">显示界面 <a href="addEmp.jsp">添加</a></p>
<table width="800" border="1" align="center">
<tr>
<td width="18">编号</td>
<td width="18">姓名</td>
<td width="18">性别</td>
<td width="18">年龄</td>
<td width="18">部门</td>
<td width="18">爱好</td>
<td width="18">修改</td>
<td width="23">删除</td>
</tr>
<!-- 用逻辑标库的迭代标签输出数据 -->
<logic:iterate id="emp" name="page" property="data">
<tr>
<td><bean:write name="emp" property="empID"/></td>
<td><bean:write name="emp" property="empName"/></td>
<td><bean:write name="emp" property="empSex"/></td>
<td><bean:write name="emp" property="empBirthday"/></td>
<td><bean:write name="emp" property="empPost"/></td>
<td>
<nested:iterate id="elove" name="emp" property="empLove">
<bean:write name="elove" property="love"/>
</nested:iterate>
</td>
<td><a href="${pageContext.request.contextPath}/findAmendEmp.do?empID=<bean:write name="emp" property="empID"/>">修改</a></td>
<td><a href="${pageContext.request.contextPath}/delEmp.do?empID=<bean:write name="emp" property="empID"/>">删除</a></td>
</tr>
</logic:iterate>
</table>
<!------------- 分页操作 ---------->
<div align="center">
<a href="${pageContext.request.contextPath}/display.do?currentlyPage=1">首页</a>
<!-------当前页 不小于 1 时 显示"上一页"为超级链接---------->
<logic:notEqual value="1" property="currentlyPage" name="page">
<a href="${pageContext.request.contextPath}/display.do?currentlyPage=${page.currentlyPage-1}">上一页</a>
</logic:notEqual>
<!-------当前页等于1 时 显示"上一页" 为上一页 取消超链 ---->
<logic:equal value="1" property="currentlyPage" name="page">上一页</logic:equal>
<!-------当前页 小于 最大页时 显示"下一页" 为超链接------->
<logic:notEqual value="${page.totalityPage}" property="currentlyPage" name="page">
<a href="${pageContext.request.contextPath}/display.do?currentlyPage=${page.currentlyPage+1}">下一页</a>
</logic:notEqual>
<!-------当前页 等于于 最大页时 显示"下一页" 为下一页 超链失效------->
<logic:equal value="${page.totalityPage}" property="currentlyPage" name="page">下一页</logic:equal>
<a href="${pageContext.request.contextPath}/display.do?currentlyPage=${page.totalityPage }">末页</a>
</div>
</body>
</html>
===================================
终于加完注释了^_^ 希望楼主能有灵感 太困了 其中注释不清楚或有错误
请原谅!! 睡觉喽!!!晚安!!
我是一个j2ee新手
你的代码让我有许多收获!
真想和你好好聊聊!
可是在这里又不好从和说起!希望收到你的邮件!