声明:本文代码来自“西安健飞软件”内部,由小洋提供全套技术支持!在此感谢!
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(" ");
//首页
if(this.cPage>1){
str.append("<a href="+this.fileName+"&cpage=1>首页</a>");
}else{
str.append("首页");
}
str.append(" ");
//上一页
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(" ");
//下一页
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(" ");
//末页
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(" ");
//第几页
str.append("第");
str.append(this.cPage);
str.append("页");
str.append(" ");
//共几页
str.append("共");
str.append(this.allPage);
str.append("页");
str.append(" ");
//跳转页
for(int i=1;i<=this.allPage;i++){
str.append(" ");
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(" 跳转到");
//str.append("<select name=/"cpage/" οnchange=/"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;
}
Struts分页代码相关推荐
- mysql通用分页_MySQL海量数据的通用存储过程分页代码
本节主要内容: MySQL海量数据的通用存储过程分页代码 本节为大家分享一例mysql 通用存储过程分页.海量数据分页的代码. 1,测试用的表结构: 复制代码 代码示例: CREATE TABLE I ...
- PHP分页代码实例教程
PHP分页代码实例教程 分享一段php分页代码,很简单,作为php分页的入门教程不错. 专题推荐:php分页代码大全 php分页原理 php分页类 数据库链接及参数设定 //数据库连接 ...
- php mysql ajax 分页_ajax+php+mysql无刷新分页代码(1/2)_PHP教程
ajax+php+mysql无刷新分页代码 ajax+php教程+mysql教程无刷新分页代码 2 3 4投票结果 5 6 7 8 9 function getxmlhttpobject() 10 { ...
- 分页原理+分页代码+分页类制作
分页显示是一种非常常见的浏览和显示大量数据的方法,属于web编程中最常处理的事件之一.对于web编程的老手来说,编写这种代码实在是和呼吸一样自然,但是对于初学者来说,常常对这个问题摸不着头绪,因此 ...
- php模型分页代码,ThinkPHP6.0模型关联分页
模型关联分页简单案例,标签关联文章,对文章进行分页,上一篇文章写得比较繁琐,这里可以将问题拆解成一对多关系,那么问题就迎刃而解了. 我们可以通过查询tag直接拿到tag_id,通过中间表和文章表关联一 ...
- php ajax 分页phpapi,ajax分页_php ajax分页代码
摘要 腾兴网为您分享:php ajax分页代码,智慧农业,长沙银行,一折包邮,信和财富等软件知识,以及381.65,红娘牵线,中经油马,战地小,歌词制作,唯美会,微软必应输入法,邓州在线,螺丝钉,侠客 ...
- php分页代码 页数太多,php google或baidu分页代码
php实现google与baidu的分页代码,需要的朋友可以参考下. /** 作者:潇湘博客 时间: 2009-11-26 php技术群: 37304662 使用方法: include_once'Pa ...
- mysql分页存储过程 分页查询语句_分页存储过程(用存储过程实现数据库的分页代码)...
用存储过程实现数据库的分页代码,加快页面执行速度.具体的大家可以测试下. --******************************************************* --* 分 ...
- mysql sqlserver分页_SqlServer、MySql万能分页代码
sql数据库中常用的分页 我做了一个万能的 用的上的小伙伴拿去耍吧 go ----SqlServer万能分页代码 create procedure [dbo].[sp_datapager] @pag ...
最新文章
- 用python画万花筒写轮眼_万花筒写轮眼画法教程
- 【BZOJ】【1038】【ZJOI2008】瞭望塔
- 损失函数,梯度下降与牛顿法
- findbugs教程
- 浅谈SQL注入风险 - 一个Login拿下Server(转)
- 成语json_人工智能测试爬百度成语测成语接龙
- 三星android rom开发者,六年老机吃上奥利奥:第三方三星S2安卓8.0刷机包发布
- rest_framework 权限功能
- 联想计算机usb驱动程序,联想笔记本USB3.0驱动
- java山地车 故障,山地车经常会出现的十个小故障,你都遇到了几个
- 人工智能终究会抢了我们程序员的饭碗
- 怎么在html中复制粘贴图片,如何复制其他网页上的文章和图片
- Git cherry-pick 详解
- win10或win11打印机无法打印
- openGL增强表面细节--凹凸贴图具体实现
- dev-c++输出的中文乱码
- preceding-sibling::*[1]
- 网易企业邮箱管理功能
- 信息学奥赛一本通:2028:【例4.14】百钱买百鸡
- mongodb关联查询
热门文章
- 2022第17届中国重庆橡塑工业展览会|成都橡塑展
- 五种原因导致孩子易患口腔溃疡,专家为你一一支招
- Python实现最小二乘法线性回归
- 恢复BIOS初始设置
- PVE和PVP的区别
- java实现代码在线编译器-从零开发(二)简单SpringBoot网络接口demo
- 【keil5应用】如何生成lib库文件,以及使用lib文件
- python 递归函数 三角形_数据结构-python(2)-递归
- 我是这样在windows上配置winpython的
- ubuntu——cat和输出命令详解