- 浏览: 457111 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
yuan_bin1990:
您好,请问下demo如何运行啊,准备研究研究,但不知道入口啊。 ...
ssh2(struts2+spring2.5+hibernate3.3)自动生成代码程序 -
luyulong:
[b][/b][i][/i][ ...
jQuery进度条插件 jQuery progressBar -
txin0814:
mark..
读取文件目录 -
vurses:
[align=center][color=red][size= ...
include 与 jsp:include区别 -
Roshan2:
http://lijiejava.iteye.com/blog ...
Spring AOP 入门实例
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>
发表评论
-
spring分布式事务(jotm)
2010-06-17 22:19 1760分布式事务是指操作多个数据库之间的事务,在tomcat下,是没 ... -
Hibernate分页查询与泛型
2010-06-17 18:08 1012JE有两篇文章,关于分页查询 与泛型 的,写的很好.这里收藏一 ... -
Struts+Spring+Hibernate实现上传下载
2010-06-16 20:44 727Struts+Spring+Hibernate实现 ... -
ssh中利用pager-taglib和filter进行分页
2010-05-27 10:04 1620在ssh架构中利用pager-taglib和filter根据用 ... -
STRUTS2 SSL的一个好用插件
2010-05-18 13:52 1017最近遇到问题了,要用到SSL,比如某个连接https://xx ... -
struts2 + spring 2.5 + ibatis
2010-05-17 11:29 786很久没有做struts2 + spring 2.5 + iba ... -
Spring事务详解
2010-04-13 16:23 826Spring中事务的定义: 一 ... -
jbpm4整合struts2+spring2.5+hibernate3.3
2009-09-07 23:17 1853如果不结合其他的框 ... -
ssh2(struts2+spring2.5+hibernate3.3)自动生成代码程序
2009-09-07 23:00 1575为什么需要自动生成代 ...
相关推荐
struts spring hibernate 登陆 SSH整合分页功能 SSH整合分页struts spring hibernate 登陆 SSH整合分页功能 SSH整合分页struts spring hibernate 登陆 SSH整合分页功能 SSH整合分页
SSH整合分页Demo入门
说明 由于只能上传20M 所以把SSH 的Jar文件都去掉了
ssh分页 ssh分页ssh分页ssh分页ssh分页ssh分页
包含jar包 直接MyEclipse导入 可用 数据库自己建 2个参数
框架整合SSH实现分页
这是我最近刚做好的SSH的整合CRUD的基本操作,附有工程和教学文档,初学者可以跟着一步步的学,已经学会了的可以给我指导下意见。使用前请先阅读说明.txt.
这是个我目前好的最好的分页,功能强大,使用简单,(实现了排序、过滤、查找)是一个真真的分页例子。
ssh整合的系统,有分页,校验,ajax
ssh框架整合包括分页操作,增删查改操作!
Hibernate+Spring+Struts2整合开发中的一个分页显示,对这方面有需求的人有用
此案例是用ssh框架写的分页,希望对各位有所帮助,内含源码注释,下载添加jar包即可运行。
ssh分页功能 前后台代码简洁易懂,所有代码都有注释,对session进行处理,分页不会被卡住,希望对学习ssh框架整合的童鞋有所帮助
SSH整合EasyUI实现添加,删除,分页,里面有sql命令,ces凑字数凑字数凑字数凑字数凑字数凑字数凑字数
S2SH+JSON+JQuery+Mysql实现ajax分页
这是Java常用框架阶段在为学生答疑时做的一个SSH整合分页实例(第一部分),涉及了SSH整合、日期模糊查询、查询条件绑定、查询结果排序等功能,希望能为大家提供一些思路。 分页是绝大多数MIS系统必需的功能之一,...
SSHConformity【display标签和taglib标签缺架包】,ssh整合,分页,display标签,pager-taglib标签
再次打造SSH1整合下的通用泛型DAO+分页,基于HibernateTemplate,欢迎大家指正 - DAO - Java - JavaEye论坛_files
SSH整合开发的一个实例,项目中有两张表(学生表与班级表)它们的关系是一对多的关系,项目中的action包是应用的表示层(Struts2)dao包是应用的数据访问层(Hibernate)domain是对应的两个类,由对象来生成关系,...
ssh整合做个简单的示例,分页,增删改查,,如果想实习全部的后续应该添加删除,修改功能, 次示例使用到级联。