`
lzkyo
  • 浏览: 466003 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ssh整合分页

    博客分类:
  • SSH
阅读更多
dao 方法: 
Java代码 
/**  
     * get appCodes by Pagination  
     *   
     * @param appCode  
     * @param pagination  
     */  
    @SuppressWarnings("unchecked")   
    public Pagination getAppCodes(final AppCode appCode, final Pagination pagination) {   
        HibernateCallback callback = new HibernateCallback() {   
  
            @Override  
            public Object doInHibernate(Session session) throws HibernateException, SQLException {   
                int totalRow = 0;   
                List<AppCode> objList = new ArrayList<AppCode>();   
                try {   
                    Criteria criteria = session.createCriteria(AppCode.class);   
                    // 只查状态有效的   
                    criteria.add(Restrictions.eq("status", CConstants.VALID));   
                    totalRow = (Integer) criteria.setProjection(Projections.rowCount()).uniqueResult();   
                    criteria.setProjection(null);   
                    pagination.setTotalRow(totalRow);   
                    objList = criteria.addOrder(Order.asc("category")).addOrder(Order.asc("codeId")).setFirstResult(pagination.getStartRow()).setMaxResults(pagination.getPageSize()).list();   
                    pagination.setObjList(objList);   
                } catch (Exception e) {   
                    log.error("uh oh, getappCodes by Pagination failed...");   
                    e.printStackTrace();   
                }   
                return pagination;   
            }   
        };   
        return (Pagination) getHibernateTemplate().execute(callback);   
    }  

/**
	 * get appCodes by Pagination
	 * 
	 * @param appCode
	 * @param pagination
	 */
	@SuppressWarnings("unchecked")
	public Pagination getAppCodes(final AppCode appCode, final Pagination pagination) {
		HibernateCallback callback = new HibernateCallback() {

			@Override
			public Object doInHibernate(Session session) throws HibernateException, SQLException {
				int totalRow = 0;
				List<AppCode> objList = new ArrayList<AppCode>();
				try {
					Criteria criteria = session.createCriteria(AppCode.class);
					// 只查状态有效的
					criteria.add(Restrictions.eq("status", CConstants.VALID));
					totalRow = (Integer) criteria.setProjection(Projections.rowCount()).uniqueResult();
					criteria.setProjection(null);
					pagination.setTotalRow(totalRow);
					objList = criteria.addOrder(Order.asc("category")).addOrder(Order.asc("codeId")).setFirstResult(pagination.getStartRow()).setMaxResults(pagination.getPageSize()).list();
					pagination.setObjList(objList);
				} catch (Exception e) {
					log.error("uh oh, getappCodes by Pagination failed...");
					e.printStackTrace();
				}
				return pagination;
			}
		};
		return (Pagination) getHibernateTemplate().execute(callback);
	}


Service 方法: 
Java代码 
/**  
     * get appCodes by Pagination  
     * @param appCode  
     * @param pagination  
     */  
    public Pagination getAppCodes(AppCode appCode, Pagination pagination) {   
        return appCodeDao.getAppCodes(appCode, pagination);   
    }   
       
    /**  
     * get appCodes by Pagination for Flex  
     * @param map  
     * @param pagination  
     */  
    public Pagination query(Map<String, String> map, Pagination pagination) {   
        if (map.isEmpty()) {   
            return getAppCodes(new AppCode(), pagination);   
        }   
        AppCode appCode = new AppCode();   
        if (StringUtils.isNotEmpty(map.get("id"))) {   
            appCode.setId(map.get("id"));   
        }   
        if (StringUtils.isNotEmpty(map.get("codeId"))) {   
            appCode.setCodeId(map.get("codeId"));   
        }   
        if (StringUtils.isNotEmpty(map.get("codeName"))) {   
            appCode.setCodeName(map.get("codeName"));   
        }   
        if (StringUtils.isNotEmpty(map.get("category"))) {   
            appCode.setCategory(map.get("category"));   
        }   
        if (StringUtils.isNotEmpty(map.get("categoryDesc"))) {   
            appCode.setCategoryDesc(map.get("categoryDesc"));   
        }   
        if (StringUtils.isNotEmpty(map.get("description"))) {   
            appCode.setDescription(map.get("description"));   
        }   
        if (StringUtils.isNotEmpty(map.get("status"))) {   
            appCode.setStatus(map.get("status"));   
        }   
        if (StringUtils.isNotEmpty(map.get("createDate"))) {   
            appCode.setCreateDate(DateTypeConverter.convertFromString(map.get("createDate")));   
        }   
        return getAppCodes(appCode, pagination);   
    }  

/**
	 * get appCodes by Pagination
	 * @param appCode
	 * @param pagination
	 */
	public Pagination getAppCodes(AppCode appCode, Pagination pagination) {
		return appCodeDao.getAppCodes(appCode, pagination);
	}
	
	/**
	 * get appCodes by Pagination for Flex
	 * @param map
	 * @param pagination
	 */
	public Pagination query(Map<String, String> map, Pagination pagination) {
		if (map.isEmpty()) {
			return getAppCodes(new AppCode(), pagination);
		}
		AppCode appCode = new AppCode();
		if (StringUtils.isNotEmpty(map.get("id"))) {
			appCode.setId(map.get("id"));
		}
		if (StringUtils.isNotEmpty(map.get("codeId"))) {
			appCode.setCodeId(map.get("codeId"));
		}
		if (StringUtils.isNotEmpty(map.get("codeName"))) {
			appCode.setCodeName(map.get("codeName"));
		}
		if (StringUtils.isNotEmpty(map.get("category"))) {
			appCode.setCategory(map.get("category"));
		}
		if (StringUtils.isNotEmpty(map.get("categoryDesc"))) {
			appCode.setCategoryDesc(map.get("categoryDesc"));
		}
		if (StringUtils.isNotEmpty(map.get("description"))) {
			appCode.setDescription(map.get("description"));
		}
		if (StringUtils.isNotEmpty(map.get("status"))) {
			appCode.setStatus(map.get("status"));
		}
		if (StringUtils.isNotEmpty(map.get("createDate"))) {
			appCode.setCreateDate(DateTypeConverter.convertFromString(map.get("createDate")));
		}
		return getAppCodes(appCode, pagination);
	}


分页类:Java代码 
public class Pagination {   
    /** 当前页 */  
    private int currentPage = 1;   
    /** 每页显示数 */  
    private int pageSize = CConstants.PAGE_SIZE;   
    /** 总行数 */  
    private int totalRow = 0;   
    /** 页码 List */  
    private List<Integer> pages = new ArrayList<Integer>();   
       
    /** 总页数 */  
    private int totalPage;   
    /** 当前页在数据库中的起始行 */  
    private int startRow=0;   
       
    /** 查询参数保存 javabean的形式 */  
    private Object queryObject ;   
       
    /**  要显示的数据集 */  
    private List objList;   
       
    public Pagination() {   
    }   
  
    public Pagination(int currentPage, int pageSize, int totalRow) {   
        this.currentPage = currentPage;   
        this.pageSize = pageSize;   
        this.totalRow = totalRow;   
    }   
  
    public Pagination(int pageSize) {   
        this.pageSize = pageSize;   
        this.currentPage = 1;   
        this.totalRow = 1;   
    }   
  
    public int getCurrentPage() {   
        return currentPage;   
    }   
  
    public void setCurrentPage(int currentPage) {   
        if (currentPage==0) {   
            return;   
        }   
        this.currentPage = currentPage;   
    }   
  
    public int getPageSize() {   
        return pageSize;   
    }   
  
    public void setPageSize(int pageSize) {   
        this.pageSize = pageSize;   
    }   
  
    public int getTotalRow() {   
        return totalRow;   
    }   
  
    public void setTotalRow(int totalRow) {   
        this.totalRow = totalRow;   
    }   
  
    public int getStartRow() {   
        if (this.currentPage > 1) {   
            this.startRow = (this.currentPage - 1) * this.pageSize;   
        } else {   
            this.startRow = 0;   
        }   
        return startRow;   
    }   
  
    public void setStartRow(int startRow) {   
        this.startRow = startRow;   
    }   
  
    public List<Integer> getPages() {   
        this.pages.clear();   
        for (int i = 0; i < this.totalPage; i++) {   
            try {   
                this.pages.add((i+1));   
            } catch (Exception e) {   
                e.printStackTrace();   
            }   
        }   
        return pages;   
    }   
  
    public void setPages(List<Integer> pages) {   
        this.pages = pages;   
    }   
  
    public Object getQueryObject() {   
        return queryObject;   
    }   
  
    public void setQueryObject(Object queryObject) {   
        this.queryObject = queryObject;   
    }   
  
    public List getObjList() {   
        return objList;   
    }   
  
    public void setObjList(List objList) {   
        this.objList = objList;   
    }   
  
    public int getTotalPage() {   
        this.totalPage = this.totalRow / this.pageSize;   
        if (this.totalRow % this.pageSize != 0) {   
            this.totalPage += 1;   
        }   
        return totalPage;   
    }   
  
    public void setTotalPage(int totalPage) {   
        this.totalPage = totalPage;   
    }   
  
}  

public class Pagination {
	/** 当前页 */
	private int currentPage = 1;
	/** 每页显示数 */
	private int pageSize = CConstants.PAGE_SIZE;
	/** 总行数 */
	private int totalRow = 0;
	/** 页码 List */
	private List<Integer> pages = new ArrayList<Integer>();
	
	/** 总页数 */
	private int totalPage;
	/** 当前页在数据库中的起始行 */
	private int startRow=0;
	
	/** 查询参数保存 javabean的形式 */
	private Object queryObject ;
	
	/**  要显示的数据集 */
    private List objList;
    
	public Pagination() {
	}

	public Pagination(int currentPage, int pageSize, int totalRow) {
		this.currentPage = currentPage;
		this.pageSize = pageSize;
		this.totalRow = totalRow;
	}

	public Pagination(int pageSize) {
		this.pageSize = pageSize;
		this.currentPage = 1;
		this.totalRow = 1;
	}

	public int getCurrentPage() {
		return currentPage;
	}

	public void setCurrentPage(int currentPage) {
		if (currentPage==0) {
			return;
		}
		this.currentPage = currentPage;
	}

	public int getPageSize() {
		return pageSize;
	}

	public void setPageSize(int pageSize) {
		this.pageSize = pageSize;
	}

	public int getTotalRow() {
		return totalRow;
	}

	public void setTotalRow(int totalRow) {
		this.totalRow = totalRow;
	}

	public int getStartRow() {
		if (this.currentPage > 1) {
			this.startRow = (this.currentPage - 1) * this.pageSize;
		} else {
			this.startRow = 0;
		}
		return startRow;
	}

	public void setStartRow(int startRow) {
		this.startRow = startRow;
	}

	public List<Integer> getPages() {
		this.pages.clear();
		for (int i = 0; i < this.totalPage; i++) {
			try {
				this.pages.add((i+1));
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		return pages;
	}

	public void setPages(List<Integer> pages) {
		this.pages = pages;
	}

	public Object getQueryObject() {
		return queryObject;
	}

	public void setQueryObject(Object queryObject) {
		this.queryObject = queryObject;
	}

	public List getObjList() {
		return objList;
	}

	public void setObjList(List objList) {
		this.objList = objList;
	}

	public int getTotalPage() {
		this.totalPage = this.totalRow / this.pageSize;
		if (this.totalRow % this.pageSize != 0) {
			this.totalPage += 1;
		}
		return totalPage;
	}

	public void setTotalPage(int totalPage) {
		this.totalPage = totalPage;
	}

}


Action 代码: 
Java代码 
@SuppressWarnings("serial")   
public class AppCodeAction extends BaseAction{   
  
    @Resource(name="appCodeService")   
  private AppCodeService appCodeService;   
  private AppCode appCode;   
  
    public AppCode getAppCode() {   
        return appCode;   
    }   
  
    public void setAppCode(AppCode appCode) {   
        this.appCode = appCode;   
    }   
  
    public String query() {   
        if (LOG.isDebugEnabled()) {   
            LOG.debug("Entering query method...");   
        }   
        if (this.pagination == null) {   
            this.pagination = new Pagination(CConstants.PAGE_SIZE);   
        }   
        if (this.appCode == null) {   
            this.appCode = new AppCode();   
        }   
        try{   
            this.pagination = appCodeService.getAppCodes(appCode, pagination);   
        }catch (Exception e) {   
            addActionError(getText("search.exception", new String []{getText("AppCode")}));   
            return ERROR;   
        }   
        return SUCCESS;   
    }   
}  

@SuppressWarnings("serial")
public class AppCodeAction extends BaseAction{

	@Resource(name="appCodeService")
  private AppCodeService appCodeService;
  private AppCode appCode;

	public AppCode getAppCode() {
		return appCode;
	}

	public void setAppCode(AppCode appCode) {
		this.appCode = appCode;
	}

	public String query() {
		if (LOG.isDebugEnabled()) {
			LOG.debug("Entering query method...");
		}
		if (this.pagination == null) {
			this.pagination = new Pagination(CConstants.PAGE_SIZE);
		}
		if (this.appCode == null) {
			this.appCode = new AppCode();
		}
		try{
			this.pagination = appCodeService.getAppCodes(appCode, pagination);
		}catch (Exception e) {
			addActionError(getText("search.exception", new String []{getText("AppCode")}));
			return ERROR;
		}
		return SUCCESS;
	}
}



BaseAction Java代码 
  
import com.opensymphony.xwork2.ActionSupport;   
import com.tjsoft.util.Pagination;   
@SuppressWarnings("serial")   
public class BaseAction extends ActionSupport {   
       
    /** 分页类 */  
    protected Pagination pagination;   
  
    public Pagination getPagination() {   
        return pagination;   
    }   
  
    public void setPagination(Pagination pagination) {   
        this.pagination = pagination;   
    }   
       
    public String preAdd(){   
        if (LOG.isDebugEnabled()) {   
            LOG.debug("preAdd query method...");   
        }   
        return INPUT;   
    }   
  
}  


import com.opensymphony.xwork2.ActionSupport;
import com.tjsoft.util.Pagination;
@SuppressWarnings("serial")
public class BaseAction extends ActionSupport {
	
	/** 分页类 */
	protected Pagination pagination;

	public Pagination getPagination() {
		return pagination;
	}

	public void setPagination(Pagination pagination) {
		this.pagination = pagination;
	}
	
	public String preAdd(){
		if (LOG.isDebugEnabled()) {
			LOG.debug("preAdd query method...");
		}
		return INPUT;
	}

}



分页导航:Jsp代码 
<%@ page contentType="text/html; charset=UTF-8"%>   
<%@ include file="/pages/taglibs.jsp" %>   
<s:if test="#request.pagination.totalPage>0">   
    <div class="pageDiv" id="pageDiv">   
        <!-- 总记录数    
        <span>${pagination.totalRow}</span>-->   
        <!-- 当前页/总页数    
        <span>${pagination.currentPage}/${pagination.totalPage}</span>-->   
        <!-- 当前页不是第一页时生成首页和上一页 -->   
        <c:if test="${pagination.currentPage>1}">   
            <span onclick="doPage('1')"><a>首页</a></span>   
            <span onclick="doPage('pre')"><a>« 上一页</a></span>   
        </c:if>   
        <!-- 计算要分几次显示页码,每次显示10页 -->   
        <c:choose>   
            <c:when test="${pagination.totalPage %10 > 0}">   
                <c:set var="count" value="${pagination.totalPage/pagination.pageSize+1}" />   
            </c:when>   
            <c:otherwise>   
                <c:set var="count" value="${pagination.totalPage/pagination.pageSize}" />   
            </c:otherwise>   
        </c:choose>   
        <!-- count > 1 -->   
        <c:choose>   
            <c:when test="${count - 1 > 1}">   
                <!-- 1~10页先生成 -->   
                <label id="p_1" class="cruLabel">   
                <c:forEach var="p" begin="1" end="10">   
                    <span onclick="doPage('${p}')" <c:if test="${p==pagination.currentPage}">class='selected'</c:if>><a>${p}</a></span>   
                </c:forEach>   
                <span onclick="doPageLabel('p_2')"><a> »</a></span>   
                </label>   
                <c:forEach var="index" begin="2" end="${count}">   
                <label id="p_${index}" class="hideLabel">   
                    <span onclick="doPageLabel('p_${index-1}')"><a>« </a></span>   
                    <c:forEach items="${pagination.pages}" var="page" begin="${(index-1)*pagination.pageSize}" end="${index*pagination.pageSize-1}">   
                        <c:if test="${page>10}">   
                            <span onclick="doPage('${page}')" <c:if test="${page==pagination.currentPage}">class='selected'</c:if>><a>${page}</a></span>   
                        </c:if>   
                    </c:forEach>   
                    <c:if test="${count - index > 1}">   
                        <span onclick="doPageLabel('p_${index+1}')"><a> »</a></span>   
                    </c:if>   
                </label>   
                </c:forEach>   
            </c:when>   
            <c:otherwise>   
                <c:forEach items="${pagination.pages}" var="page">   
                    <span onclick="doPage('${page}')" <c:if test="${page==pagination.currentPage}">class='selected'</c:if>><a>${page}</a></span>   
                </c:forEach>   
            </c:otherwise>   
        </c:choose>   
        <!-- 当前页不是最后页时生成下一页 末页 -->   
        <c:if test="${pagination.currentPage!=pagination.totalPage}">   
            <span onclick="doPage('next')"><a>下一页 »</a></span>   
        <!-- <span onclick="doPage('${pagination.totalPage}')"><a>末页</a></span>-->   
        </c:if>   
        <!--<span>转到</span>   
        <select id="to_p">   
            <c:forEach items="${pagination.pages}" var="tp">   
                <option value="${tp}"  
                    <c:if test="${tp eq pagination.currentPage}">   
                    selected="selected"  
                    </c:if>   
                >${tp}</option>   
            </c:forEach>   
        </select>   
        <span>页</span>   
        <span onclick="doPage(document.getElementById('to_p').value)">确定</span>-->   
    </div>   
  </s:if>   
<script type="text/javascript">   
/*** 翻页*/   
function doPage(page){   
    var form=document.forms[0];   
    if('${pagination.currentPage}'===page){   
        return;   
    }else if("next"===page){   
        if('${pagination.currentPage}'=='${pagination.totalPage}')return;   
        form.action='<s:url />?pagination.currentPage='+(new Number('${pagination.currentPage}')+1);   
    }else if("pre"===page){   
        if('${pagination.currentPage}'==1)return;   
        form.action='<s:url />?pagination.currentPage='+(new Number('${pagination.currentPage}')-1);   
    }else {   
        form.action='<s:url />?pagination.currentPage='+page;   
    }   
    form.submit();   
}   
</script>  

 

分享到:
评论

相关推荐

    struts spring hibernate 登陆 SSH整合分页功能

    struts spring hibernate 登陆 SSH整合分页功能 SSH整合分页struts spring hibernate 登陆 SSH整合分页功能 SSH整合分页struts spring hibernate 登陆 SSH整合分页功能 SSH整合分页

    SSH整合分页Demo入门

    在这个"SSH整合分页Demo入门"中,我们将深入理解如何在SSH框架下实现数据的分页展示,这对于大型Web应用来说是非常重要的功能,能够有效地管理大量数据并提高用户体验。 首先,我们需要了解SSH框架的基础知识。...

    SSH整合分页

    在本项目中,“SSH整合分页”指的是如何在SSH框架集成的环境中实现高效且用户友好的数据分页功能。 分页是Web应用中必不可少的功能,尤其是在处理大量数据时,它能够帮助用户逐页浏览,提高用户体验并减轻服务器...

    SSH整合 分页 附件上传下载 国际化

    SSH整合、分页、附件上传下载以及国际化是四个在IT领域中常见的功能需求,尤其在Web应用开发中。下面将分别对这些知识点进行详细的解释。 首先,SSH整合指的是Spring、Struts2和Hibernate三大框架的集成。Spring是...

    ssh整合 简单分页

    标题"ssh整合 简单分页"暗示了这个项目是关于如何在SSH框架下实现分页功能的。分页是Web应用中常见的需求,它允许用户以较小的数据块浏览大量信息,提高用户体验,减轻服务器负载。 分页通常涉及到以下几个关键步骤...

    框架整合SSH实现分页

    以下是一个简单的SSH整合分页实现步骤: ### 实验步骤 1. **创建数据库表**:根据提供的SQL脚本,创建了admin、book、category、guestbook和product五个表,用于存储不同类型的业务数据。 2. **配置SSH框架**:在...

    SSH整合CRUD案例+分页功能的实现+教学文档

    阅读“Struts2.2+Hibernate3.3+Spring2.5.6整合CRUD.pdf”和“2.SSH基础上的分页功能的实现.pdf”将有助于深入理解SSH整合以及分页功能的实现。同时,“说明.txt”可能包含了项目运行的环境配置、启动指南或其他注意...

    struts hibernate spring 分页ssh分页

    综上所述,SSH分页是Java企业级开发中的一个重要技术,它涉及到了Struts的控制层、Hibernate的数据访问层和Spring的整合及服务层,是提升应用性能和用户体验的关键手段之一。通过熟练掌握SSH分页,开发者可以更高效...

    ssh整合系统分页ajax

    5. 示例中的"qimo_JavaWeb"可能是一个包含示例代码的文件或项目,它可能包含了SSH整合的配置文件、Java源代码、JSP视图文件以及相关的分页、校验和Ajax实现。对于初学者来说,研究这个示例可以帮助理解如何在实际...

    SSH实现分页实例

    SSH(Struts2 + Spring + Hibernate)是一个经典的Java Web开发框架,它整合了三大主流开源框架,用于构建高效、可维护性高的企业级应用程序。在这个"SSH实现分页实例"中,我们将深入探讨如何在SSH框架下实现数据的...

    ssh2整合分页

    SSH2整合分页是Web开发中的一个重要概念,SSH2指的是Spring、Struts2和Hibernate这三个开源框架的组合,它们在Java Web开发中被广泛应用。在这个场景下,"整合"意味着将这三个框架集成到一个项目中,以实现高效、...

    SSH整合开发中的分页显示

    以下是对SSH整合开发中分页显示的详细说明。 首先,我们需要在DAO层定义分页查询的方法。在本例中,`MemberDao`接口有两个关键方法:`queryForPage`用于执行分页查询,`getAllRowCount`用于获取总记录数。`...

    ssh框架分页案例,简单易懂

    这个分页案例提供了使用SSH框架实现数据分页的功能,旨在帮助开发者更好地理解和应用这一技术。以下是对SSH框架分页案例的详细解读: 1. **Struts2**:作为MVC(Model-View-Controller)框架,Struts2负责处理HTTP...

    ssh2分页查询

    SSH2(Spring、Struts2...通过深入研究这个项目,你可以理解如何在实际开发中整合这三个组件,以及如何在不同层面上实现分页功能。对于初学者,这是一个宝贵的实践案例,可以帮助他们更好地理解和掌握SSH2框架的使用。

    SSH+Mysql无刷新分页实例

    在IT行业中,SSH和MySQL是两个非常重要的技术组件。...通过整合SSH框架和MySQL数据库,开发者可以构建出高效、响应式的Web应用。在实际项目中,还可以结合其他前端框架如Vue或React,进一步优化分页的实现和性能。

    ssh实现ajax分页

    综上所述,实现"SSH+JSON+JQuery+Mysql"的Ajax分页,需要整合这些技术,完成前后端的交互。前端利用jQuery的AJAX发送请求,后端通过SSH框架处理请求,从MySQL数据库中获取分页数据,再以JSON格式返回。整个过程无需...

    ssh.zip_SSH 数据分页_ssh分页实现

    SSH(Struts2 + Spring + Hibernate)是一种经典的Java Web开发框架,它整合了三大开源框架,为开发者提供了高效、简洁的开发环境。在这个名为"ssh.zip_SSH 数据分页_ssh分页实现"的压缩包中,我们可以看到一个关键...

    ssh整合的分页、批量删除

    下面将详细介绍SSH整合在分页和批量删除功能上的实现。 一、SSH整合中的分页 在大型系统中,为了提高用户体验和性能,通常需要对数据进行分页显示。在SSH框架中,分页主要由Struts和Hibernate协同完成。 1. **...

    ssh分页完整实例数据库mysql

    SSH框架,全称为Struts2、Spring和Hibernate的组合,是Java Web开发中常见的三大开源框架集成。...通过实践这个实例,你可以更深入地了解SSH框架的整合与数据库操作,为今后的项目开发打下坚实基础。

    SSH整合实例

    在这个实例中,我们将深入探讨SSH整合的实现过程,以及如何利用这些技术进行增删改查、分页和数据回显等常见操作。 首先,Spring作为核心的IOC(Inversion of Control)容器,管理着应用中的对象及其依赖关系。在...

Global site tag (gtag.js) - Google Analytics