当前位置:编程学习 > JAVA >>

跪求Struts2 + Spring + Hibernate MVC框架的 分页显示代码

跪求Struts2 + Spring + Hibernate MVC框架的 分页显示代码 越详细越好  求大神帮忙 谢谢谢谢—————————————————————————————————————————— 不要从网上复制粘贴谢谢 我看过很多不是Struts1的就是写的很乱的 --------------------编程问答-------------------- 为什么不去看看springside的分页代码很简单的 --------------------编程问答-------------------- 。。。 这个还真没了解过 --------------------编程问答-------------------- 我有个,给你找找看啊 --------------------编程问答-------------------- 手头上没存档,struts2分页也不难,网上找一下吧 --------------------编程问答-------------------- 我的天 又让我自己找 --------------------编程问答--------------------

package org.jb.common.util;

import java.util.ArrayList;
import java.util.List;

/**
 * 
 * @author hailong.liu
 */
public class PageResult<E> {
private String orderBy = "";
private String sort = "asc";
private List<E> list = new ArrayList<E>(); //查询结果
private int pageNo = 1; //实际页号
private int pageSize = 15; //每页记录数
private int recTotal = 0; //总记录数

public List getList() {
return list;
}
public void setList(List<E> list) {
this.list = list;
}
public int getPageNo() {
return pageNo;
}
public void setPageNo(int pageNo) {
this.pageNo = pageNo;
}
public int getPageSize() {
return (0==pageSize)?10:pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getRecTotal() {
return recTotal;
}
public void setRecTotal(int recTotal) {
this.recTotal = recTotal;
}
public int getPageTotal() {
int ret = (this.getRecTotal() - 1) / this.getPageSize() + 1;
ret = (ret<1)?1:ret;
return ret;
}
public int getFirstRec()
{
int ret = (this.getPageNo()-1) * this.getPageSize();// + 1;
ret = (ret < 1)?0:ret;
return ret;
}
public String getOrderBy() {
return orderBy;
}
public void setOrderBy(String orderBy) {
this.orderBy = orderBy;
}
public String getSort() {
return sort;
}
public void setSort(String sort) {
this.sort = sort;
}

}




package org.jb.common.taglib;

import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.TagSupport;

import org.jb.common.util.PageResult;
import org.jb.common.web.form.BaseForm;

public class PaginationTag extends TagSupport {
private static final long serialVersionUID = -5904339614208817088L;
private String form = null;

@Override
public int doEndTag() {
try {
BaseForm oForm = null;
if (form!=null && !"".equals(form.trim())){
oForm = (BaseForm) pageContext.getRequest().getAttribute(form);
if (null==oForm){
oForm = (BaseForm) pageContext.getSession().getAttribute(form);
}
if (oForm!=null){
PageResult pageResult = oForm.getPageResult();
StringBuffer sb = new StringBuffer();
sb.append("<div style=\"text-align:right;padding:6px 6px 0 0;\">\r\n")
.append("共"+pageResult.getRecTotal()+"条记录 \r\n")
.append("每页显示<input name=\"pageResult.pageSize\" value=\""+pageResult.getPageSize()+"\" size=\"3\" />条 \r\n")
.append("第<input id=\"pageNo\" name=\"pageResult.pageNo\" value=\""+pageResult.getPageNo()+"\" size=\"3\" />页")
.append(" / 共"+pageResult.getPageTotal()+"页 \r\n")
.append("<a href=\"javascript:page_first();\">第一页</a> \r\n")
.append("<a href=\"javascript:page_pre();\">上一页</a>\r\n")
.append("<a href=\"javascript:page_next();\">下一页</a> \r\n")
.append("<a href=\"javascript:page_last();\">最后一页</a>\r\n")
.append("<input type=\"button\" onclick=\"javascript:page_go();\" value=\"转到\" />\r\n")
.append("<input type=\"hidden\" name=\"pageResult.orderBy\"  value=\""+pageResult.getOrderBy()+"\" />\r\n")
.append("<input type=\"hidden\" name=\"pageResult.sort\"  value=\""+pageResult.getSort()+"\" />\r\n")
.append("<script>\r\n")
.append(" var pageTotal = "+pageResult.getPageTotal()+";\r\n")
.append(" var recTotal = "+pageResult.getRecTotal()+";\r\n")
.append("</script>\r\n")
.append("</div>\r\n");
sb.append("<script>\r\n");
sb.append("function page_go()\r\n")
.append("{\r\n")
.append(" page_validate(); \r\n")
.append(" document.forms[0].submit();\r\n")
.append("}\r\n")
.append("function page_first()\r\n")
.append("{\r\n")
.append(" document.forms[0].elements[\"pageResult.pageNo\"].value = 1;\r\n")
.append(" document.forms[0].submit();\r\n")
.append("}\r\n")
.append("function page_pre()\r\n")
.append("{\r\n")
.append(" var pageNo = document.forms[0].elements[\"pageResult.pageNo\"].value;\r\n")
.append(" document.forms[0].elements[\"pageResult.pageNo\"].value = parseInt(pageNo) - 1;\r\n")
.append(" page_validate();\r\n")
.append(" document.forms[0].submit();\r\n")
.append("}\r\n")
.append("function page_next()\r\n")
.append("{\r\n")
.append(" var pageNo = document.forms[0].elements[\"pageResult.pageNo\"].value;\r\n")
.append(" document.forms[0].elements[\"pageResult.pageNo\"].value = parseInt(pageNo) + 1;\r\n")
.append(" page_validate();\r\n")
.append(" document.forms[0].submit();\r\n")
.append("}\r\n")
.append("function page_last()\r\n")
.append("{\r\n")
.append(" document.forms[0].elements[\"pageResult.pageNo\"].value = pageTotal;\r\n")
.append(" document.forms[0].submit();\r\n")
.append("}\r\n")
.append("function page_validate()\r\n")
.append("{\r\n")
.append(" var pageNo = document.forms[0].elements[\"pageResult.pageNo\"].value;\r\n")
.append(" if (pageNo<1)pageNo=1;\r\n")
.append(" if (pageNo>pageTotal)pageNo=pageTotal;\r\n")
.append(" document.forms[0].elements[\"pageResult.pageNo\"].value = pageNo;\r\n")
.append(" var pageSize = document.forms[0].elements[\"pageResult.pageSize\"].value;\r\n")
.append(" if (pageSize<1)pageSize=1;\r\n")
.append(" document.forms[0].elements[\"pageResult.pageSize\"].value = pageSize;\r\n")
.append("}\r\n")
.append("function order_by(field){\r\n")
.append(" document.forms[0].elements[\"pageResult.orderBy\"].value = field;\r\n")
.append(" page_first();\r\n")
.append("}\r\n");
sb.append("</script>\r\n");
JspWriter out = pageContext.getOut();
out.println(sb.toString());
}
}
} catch (Exception e) {
}
return EVAL_PAGE;
}

public String getForm() {
return form;
}

public void setForm(String form) {
this.form = form;
}
}


查询的时候,分页类传进去,页面上直接应用就出来了
--------------------编程问答-------------------- --------------------编程问答-------------------- 搞不懂 搞不懂啊 要疯了 --------------------编程问答-------------------- 1.先确定每页显示多少条 (例如每页10条)
2.查询有多少天记录
2.那么第一页就是查询0到10条数据,第二页就是10到20(开始条数就是:当前页数-1*每页,结束索引就是 :开始索引+每页显示条数)
在配合6楼泛型分页

--------------------编程问答-------------------- 其实6楼的就已经可以了啊 --------------------编程问答-------------------- 我表示我很无奈  理论我都懂 具体如何实现如何写就写不出来了 然后我根据网上的写了一段 

/*
 * Dao实现类*/
public class PageDaoImpl extends HibernateDaoSupport implements IPageDao {

// 实现添加用户的方法
public void adduser(User user) {
this.getHibernateTemplate().save(user);
}

// 实现创建找到所有User的方法 offset代表从第几条记录开始查询 pagesize 代表每页显示多少条记录的方法
public PageModel findAllUser(int offset, int pagesize) {
// 创建HQL语句得到总记录数
String hql="select count(*) from User";
Query query=getSession().createQuery(hql);
int num=((Long)query.uniqueResult()).intValue();
// setFirstResult代表从第几个开始 setMaxResults代表每页要显示多少条
List i=getSession().createQuery("from User").setFirstResult(offset).setMaxResults(pagesize).list();
// 得到结果集
PageModel pm=new PageModel();
pm.setZong(num);
pm.setDangqian(i);
return pm;
}

然后Action类里就不知道怎么写了
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,