`

Java分页代码(JFIS)

 
阅读更多
TpageList
package jfis.util;
import java.util.List;
publicclass TPageList {
private TPages page=null; //分页对象
private List objectList=null; //对象集合
private String pageStr=""; //分页字符串
public List getObjectList() {
returnobjectList;
}
publicvoid setObjectList(List objectList) {
this.objectList = objectList;
}
public TPages getPage() {
returnpage;
}
publicvoid setPage(TPages page) {
this.page = page;
pageStr=page.getLastPageBreak();
}
public String getPageStr() {
returnpageStr;
}
publicvoid setPageStr(String pageStr) {
this.pageStr = pageStr;
}
}
Tpages
package jfis.util;
import javax.servlet.http.HttpServletRequest;
publicclass TPages {
private String fileName="";
privateintpageSize=2; //页大小
privateintallPage=1; //总页数
privateintcPage=1; //当前页
privateintsPage=1; //当前页开始记录数
privateintallRecord=1; //总记录数
private String lastPageBreak=""; //分页字符串
privateinta ;//分拆list结果集的变量(相当与游标)。可从list中的确定位置开始读数据
// String bian = request.getParameter("aaa")==null?"0":"5";
// this.a = new Integer(bian);
publicint getA() {
returna;
}
publicvoid setA(int a) {
this.a = a;
}
public TPages(){
}
public TPages(String fileName,HttpServletRequest request){
this.fileName=fileName;
//获得当前页
String cPageStr = request.getParameter("cpage")==null?"1":request.getParameter("cpage");
this.a = request.getParameter("aaa")==null ? 0 : new Integer(request.getParameter("aaa"));
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=/"right/" 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("&aaa=");
str.append(this.a-5);
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("&aaa=");
str.append(this.a+5);
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("</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;
}
}
DAO里的方法
// 分页
public TPageList pageSearchlist(TPages pages, List list) {
TPageList pageList = new TPageList();
// 记录集总行数
pages.setAllRecord(list.size());
// rs用于保存从list中截取的记录
List rs = new ArrayList();
// 控制从list集合中的第几条开始读取,相当于游标
int a = pages.getA();
// for循环中"5"代表一次读出多少条数据:"a"控制从list集合中的第几条开始读取,相当于游标。
for (int i = 0; i < 5 && a < list.size(); a++) {
rs.add(list.get(a));
i++;
}
Iterator iterator = rs.iterator();
// 得到分页字符串
pages.getSPage();
int i = 0;// 循环变量
// 判断记录总行数是否大于0,并循环创建USER对象
if (pages.getAllRecord() > 0) {
do {
i++;
} while (iterator.hasNext() && i < pages.getPageSize());
pageList.setPage(pages);
pageList.setObjectList(rs);
}
return pageList;
}
Action里的方法
public ActionForward pageSearchList(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
TPages pages = new TPages(
"/JFIS_CompanyManager/client/outer.do?method=pageSearchList",
request);
pages.setPageSize(5);
TPageList pageList = iouter.pageSearchlist(pages, iouter.getAllOuter());
request.setAttribute("outers", pageList);
return mapping.findForward("outer_list");
}
SSH分页
说明:分页的两个类不变,只变Action和DAO。
Action
// 分页
public ActionForward pageSearchList(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
Pages pages = new Pages( "/JFIS_CompanyManager/client/outer.do?method=pageSearchList",request);
pages.setPageSize(10);
PageList pageList = iouter.outerList(pages);
request.setAttribute("outers", pageList);
return mapping.findForward("outer_list");
}
DAO
// 分页
public PageList outerList(Pages pages) {
PageList pageList = new PageList();
List list = new ArrayList();
/*开启一个HibernateSession对象*/
Session session = this.getSession();
Transaction t = session.beginTransaction();
/*获得结果集*/
Query query = session
.createQuery("from jfis.bean.JfisClientItem order by starttime desc");
/*记录集总行数*/
pages.setAllRecord(query.list().size());
query.setFirstResult(pages.getSPage() - 1);
query.setMaxResults(10);/*设置每页显示的记录数*/
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;
}
分享到:
评论

相关推荐

    基于百度地图实现的定位功能.zip

    android 源码学习. 资料部分来源于合法的互联网渠道收集和整理,供大家学习参考与交流。本人不对所涉及的版权问题或内容负法律责任。如有侵权,请通知本人删除。感谢CSDN官方提供大家交流的平台

    加载本地图片,绝对不会出现OOM.zip

    android 源码学习. 资料部分来源于合法的互联网渠道收集和整理,供大家学习参考与交流。本人不对所涉及的版权问题或内容负法律责任。如有侵权,请通知本人删除。感谢CSDN官方提供大家交流的平台

    2015年中国移动电子竞技游戏发展趋势报告(1).zip

    2015年中国移动电子竞技游戏发展趋势报告(1).zip

    CKplayer-v6.8.zip

    ckplayer是一款在网页上播放视频的免费的播放器,功能强大,体积小巧,跨平台,使用起来随心所欲。 CKplayer播放器主要以adobe的flash(所使用的版本是CS5)平台开发,所以在支持flash插件的平台和浏览器上都可以使用,而无需下载其它插件,如果你需要修改完整版里提供的相关的flash源文件,请使用adobe的flash cs5以上版本打开源文件修改。 ckplayer同时也支持

    46.书籍学习平台的设计与实现-Springboot+ Mysql+Java+ B/S结构(可运行源码+数据库+设计文档)论坛

    46.书籍学习平台的设计与实现|Springboot+ Mysql+Java+ B/S结构(可运行源码+数据库+设计文档)论坛,公告,付费专区,免费专区,销售,会员办理,书籍分类 详细设计文档链接:http://t.csdnimg.cn/GSeDN 内容概要: 全套项目源码+详尽文档,一站式解决您的学习与项目需求。 适用人群: 计算机、通信、人工智能、自动化等专业的学生、老师及从业者。 使用场景及目标: 无论是毕设、期末大作业还是课程设计,一键下载,轻松部署,助您轻松完成项目。 项目代码经过调试测试,确保直接运行,节省您的时间和精力。 其他说明: 项目整体具有较高的学习借鉴价值,基础能力强的可以在此基础上修改调整,以实现不同的功能。

    密码学实验报告2.docx

    密码学实验报告2.docx

    各种旋转动画的ImageView(1).zip

    android 源码学习. 资料部分来源于合法的互联网渠道收集和整理,供大家学习参考与交流。本人不对所涉及的版权问题或内容负法律责任。如有侵权,请通知本人删除。感谢CSDN官方提供大家交流的平台

    S7200基本编程指令.ppt

    S7200基本编程指令.ppt

    基于python+OpenCV的火车票识别源码+使用文档+全部资料(优秀项目).zip

    【资源说明】 基于python+OpenCV的火车票识别源码+使用文档+全部资料(优秀项目).zip基于python+OpenCV的火车票识别源码+使用文档+全部资料(优秀项目).zip 【备注】 1、该项目是个人高分毕业设计项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(如软件工程、计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!

    WordPress.zip

    android 源码学习. 资料部分来源于合法的互联网渠道收集和整理,供大家学习参考与交流。本人不对所涉及的版权问题或内容负法律责任。如有侵权,请通知本人删除。感谢CSDN官方提供大家交流的平台

    移动机器人机械臂的设计小论文.doc

    移动机器人机械臂的设计小论文.doc

    基于Python+OpenCV+tinker的指纹识别系统,使用的硬件为AS608源码+使用文档+全部资料(优秀项目).zip

    【资源说明】 基于Python+OpenCV+tinker的指纹识别系统,使用的硬件为AS608源码+使用文档+全部资料(优秀项目).zip基于Python+OpenCV+tinker的指纹识别系统,使用的硬件为AS608源码+使用文档+全部资料(优秀项目).zip 【备注】 1、该项目是个人高分毕业设计项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(如软件工程、计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!

    xiuno模板知乎蓝魔改版源码附多个插件.zip

    xiuno模板知乎蓝魔改版源码附多个插件

    2022年 【24页】从孪生到融生,AIGC成为长期方向.zip

    2022年 【24页】从孪生到融生,AIGC成为长期方向.zip

    [信息与通信]使用EMIF将Xilinx_FPGA与TI_DSP平台接口.pdf

    [信息与通信]使用EMIF将Xilinx_FPGA与TI_DSP平台接口.pdf

    基于Opencv+Filterpy实现YOLOV3-SORT车辆跟踪与车流统计算法源码+使用文档+全部资料(优秀项目).zip

    【资源说明】 基于Opencv+Filterpy实现YOLOV3-SORT车辆跟踪与车流统计算法源码+使用文档+全部资料(优秀项目).zip基于Opencv+Filterpy实现YOLOV3-SORT车辆跟踪与车流统计算法源码+使用文档+全部资料(优秀项目).zip基于Opencv+Filterpy实现YOLOV3-SORT车辆跟踪与车流统计算法源码+使用文档+全部资料(优秀项目).zip 【备注】 1、该项目是个人高分毕业设计项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(如软件工程、计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!

    仿QQ消息列表(ListView)滑动删除效果源码.zip

    android 源码学习. 资料部分来源于合法的互联网渠道收集和整理,供大家学习参考与交流。本人不对所涉及的版权问题或内容负法律责任。如有侵权,请通知本人删除。感谢CSDN官方提供大家交流的平台

    最新招标流程图.pdf

    1.招标投标活动不受地区或者部门的限制。任何单位和个人不得违法限制或者排斥本地区、 本系统以外的法人或者其他组织参加投标,不得以任何方式非法干涉招标投标活动。 2.招标人设有标底,标底必须保密 3.可以不招标的情况之一都可以不招标:①不可替代②采购人自行建设、生产或提供③已通 过招标方式特许的④需要向原中标人采购的,否则影响配套要求的,但是不得超过合同金额 的10%⑤国家规定的其他特殊情况

    C++基于自实现OpenCV图像处理函数的静态车道线检测项目源码+使用文档+全部资料(优秀项目).zip

    【资源说明】 C++基于自实现OpenCV图像处理函数的静态车道线检测项目源码+使用文档+全部资料(优秀项目).zipC++基于自实现OpenCV图像处理函数的静态车道线检测项目源码+使用文档+全部资料(优秀项目).zipC++基于自实现OpenCV图像处理函数的静态车道线检测项目源码+使用文档+全部资料(优秀项目).zip 【备注】 1、该项目是个人高分毕业设计项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(如软件工程、计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!

    基于单片机的遥控机械臂设计.doc

    基于单片机的遥控机械臂设计.doc

Global site tag (gtag.js) - Google Analytics