跪求Struts2 + Spring + Hibernate MVC框架的 分页显示代码 越详细越好  求大神帮忙 谢谢谢谢—————————————————————————————————————————— 不要从网上复制粘贴谢谢 我看过很多不是Struts1的就是写的很乱的

解决方案 »

  1.   

    为什么不去看看springside的分页代码很简单的
      

  2.   

    手头上没存档,struts2分页也不难,网上找一下吧
      

  3.   


    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()+"条记录&nbsp;\r\n")
    .append("每页显示<input name=\"pageResult.pageSize\" value=\""+pageResult.getPageSize()+"\" size=\"3\" />条&nbsp;\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;
    }
    }
    查询的时候,分页类传进去,页面上直接应用就出来了
      

  4.   

    我表示我很无奈  理论我都懂 具体如何实现如何写就写不出来了 然后我根据网上的写了一段 /*
     * 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类里就不知道怎么写了