struts+hibernate分页

space_Wind 2009-03-23 05:32:28
有这些功能:共有_条记录,_条记录/页,首页,上一页,下一页,尾页,当前_页和 转至_页 GO。
上网找了很多,但是没能找到“转至_页”,即使有代码也不好用。网上的文章都是copy的,真叫人郁闷啊~
希望哪位大哥帮帮小弟,感激不尽!!~
...全文
146 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
逛逛 2011-05-20
  • 打赏
  • 举报
回复
这位liang_大侠 ,能不能给我发一份啊 谢谢啊 急求啊 790027358@qq.com
liang__ 2009-03-25
  • 打赏
  • 举报
回复
发了。
这是一个完整的工程,导入后需要运行在JDK1.5以上的版本(不然会报错的)。我的这个是1.6的版本。
如果你装的是JDK1.5,需在进行如下设置。
windows-preference-java-compliler - config project ....--选中这个工程,把它改成和你的机子上的一样的。
然后建数据库。
你也可以在配置文件里改一下,可以不建的。
然后这里面的东西,可以直接进行测试的。
浏览器中输入Http://localhost:8080/JavaScript/csdn.do
代码里我很少加注释,我的编码习惯不好,不过应该能看得懂的,代码很少。
liang__ 2009-03-25
  • 打赏
  • 举报
回复
不谢,不过你还是要自己理解一下,能自己写出来一个最好。我以前在学校的时候花了好多天自己写了一个。
以前那个不满足你的需求。
这个只不过是我抽时间把我现在用的给抽离出来了。
space_Wind 2009-03-25
  • 打赏
  • 举报
回复
你真是我的救星啊!谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢!
liang__ 2009-03-24
  • 打赏
  • 举报
回复
那我整理一下,给你发过去,不过这个代码可不是全的。
但是涉及到分页的部分应该是全的。
祝你好运。
space_Wind 2009-03-24
  • 打赏
  • 举报
回复
谢谢!麻烦您了!
liang__ 2009-03-24
  • 打赏
  • 举报
回复
我晕,那个方法是一个封装好的,用来分页查询的。
这个你可以自己写一个类似的方法,不要跟我发给你的一样的。
你不是做好了一个能够分页查询的吗?
改改不就成了。
算了,我再看看,能不能给你整出一个DEMO来。
明天给你吧,现在我还在忙。
zgycsmb 2009-03-24
  • 打赏
  • 举报
回复
jf
space_Wind 2009-03-24
  • 打赏
  • 举报
回复
真对不起,我太菜了,有好多地方没有看懂啊!
比如comlist = dao.getQueryResult(hql, map, startRow, pageSize);hql和map是什么啊,应该在哪里写啊。
还有就是jsp页面的上一页下一页的action.do应该怎么写啊。链接数据库的语句写在哪啊?
劳烦您了……
space_Wind 2009-03-23
  • 打赏
  • 举报
回复
麻烦老哥给我个完整的分页代码好么?在这里发可以,发的我的邮箱也OK!mars2581986@yahoo.com.cn
小弟确实好着急,更何况是刚参加工作不长时间,经验少!
liang__ 2009-03-23
  • 打赏
  • 举报
回复
不要说不能用啊。我这里可正用着,主要是下班了,要不然我就给你整出来一个demo
liang__ 2009-03-23
  • 打赏
  • 举报
回复

package com.esms.util.page;

public class Pager{
private int totalRows; //总行数
private int pageSize; //每页显示的行数
private int currentPage=1; //当前页号
private int totalPages; //总页数
private int startRow=0; //当前页在数据库中的起始行
private int endRow=0;
private boolean hasNextPage=false; //是否有下一页

private boolean hasPreviousPage=false; //是否有前一页

private boolean hasFirstPage=true;
private boolean hasLastPage=true;
public Pager(){
pageSize=20;
currentPage=1;
startRow=0;
endRow=0;
}
public Pager(int Size){
pageSize=Size;
currentPage=1;
startRow=0;
endRow=0;
}
public void start(int totalRows){
this.totalRows=totalRows;
totalPages=totalRows/pageSize;
int mod=totalRows%pageSize;
if(mod>0){
totalPages++;
}
}
public int getStartRow(){
return startRow;
}
public int getEndtRow(){
return endRow;
}
public int getTotalPages(){
return totalPages;
}
public int getCurrentPage(){
return currentPage;
}
public int getPageSize(){
return pageSize;
}
public int getTotalRows(){
return totalRows;
}
public boolean isHasNextPage(){
return hasNextPage;
}
public boolean isHasPreviousPage(){
return hasPreviousPage;
}
public boolean isHasFirstPage(){
return hasFirstPage;
}
public boolean isHasLastPage(){
return hasLastPage;
}
public void setTotalRows(int totalRows){
this.totalRows=totalRows;
}
public void setStartRow(int startRow){
this.startRow=startRow;
}
public void setEndRow(int endRow){
this.endRow=endRow;
}
public void setTotalPages(int totalPages){
this.totalPages=totalPages;
}
public void setCurrentPage(int currentPage){
this.currentPage=currentPage;
}
public void setPageSize(int pageSize){
this.pageSize=pageSize;
}
public void setHasNextPage(boolean hasNextPage) {
this.hasNextPage = hasNextPage;
}
public void setHasPreviousPage(boolean hasPreviousPage){
this.hasPreviousPage = hasPreviousPage;
}
public void setHasFirstPage(boolean hasFirstPage){
this.hasFirstPage = hasFirstPage;
}
public void setHasLastPage(boolean hasLastPage){
this.hasLastPage = hasLastPage;
}
public void first(){
currentPage=1;
startRow=0;
endRow=0;
if(totalRows>pageSize){
hasNextPage=true;
endRow=pageSize;
}
else{
hasNextPage=false;
endRow=totalRows;
}
hasPreviousPage=false;
}
public void previous(){
currentPage--;
if (currentPage==0){
currentPage =1;
}
startRow=(currentPage-1)*pageSize;
endRow=0;
if(currentPage>=totalPages){
hasNextPage=false;
}
else{
hasNextPage=true;
}
if((currentPage-1)>0){
hasPreviousPage=true;
}
else{
hasPreviousPage=false;
}
endRow=startRow+pageSize-1;
}
public void next(){
currentPage++;
if(currentPage>=totalPages){
currentPage=totalPages;
hasNextPage=false;
}
startRow=(currentPage-1)*pageSize;
if (currentPage>=totalPages){
hasNextPage=false;
endRow=totalRows;
}
else{
hasNextPage=true;
endRow=startRow+pageSize-1;
}
if((currentPage-1)>0){
hasPreviousPage=true;
}
else{
hasPreviousPage=false;
}
}
public void last(){
currentPage=totalPages;
startRow=(currentPage-1)*pageSize;
endRow=0;
if(totalRows>pageSize){
hasPreviousPage=true;
}
else{
hasPreviousPage=false;
}
endRow=totalRows;
hasNextPage=false;

}
public void find(int page){
currentPage=page;
startRow=(currentPage-1)*pageSize;
endRow=0;
if (currentPage>=totalPages){
hasNextPage=false;
endRow=totalRows;
}
else{
hasNextPage=true;
endRow=startRow+pageSize-1;
}
if((currentPage-1)>0){
hasPreviousPage=true;
}
else{
hasPreviousPage=false;
}

}
}


find 方法就是你用来得到 startRow 和 endRow 的
也就是你用来接收转到第_页的参数的。
suncheng_hong 2009-03-23
  • 打赏
  • 举报
回复
关键给你一个,你也需要改。也很费时间。
给你个思路。
分页sql,是个循环嵌套
select tt.* from(
select * from (
select * from t rownum<n
) tt
) rownum>m
然后把在action中定义两个变量m,n
定义一个page类,有上一页,下一页。。
在action中,第一次访问是n假定10,m为0。把数据条数查出来,new page(数据条数),page中计算上一页,下一页,最后页。
最后在页面上显示结果。点击下一页,把下一页传过来,转换成m,n,再查数据,展示。
。。。




rijiuyou01 2009-03-23
  • 打赏
  • 举报
回复
学习 帮顶
suncheng_hong 2009-03-23
  • 打赏
  • 举报
回复
自己写,不写永远写不出来。
space_Wind 2009-03-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sun_zhicheng 的回复:]
lz 为什么不自己写呢 又不难 你也太想偷工减料了吧
介意lz去读懂一个分页代码 在自己写吧
[/Quote]
大哥我赶时间,要么就帮帮我,要么就帮顶一下也可以。这种话就不要对我说了吧
sun_zhicheng 2009-03-23
  • 打赏
  • 举报
回复
lz 为什么不自己写呢 又不难 你也太想偷工减料了吧
介意lz去读懂一个分页代码 在自己写吧

81,106

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧