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

struts hibernate spring 实现分页、排序、复杂条件查询②

    博客分类:
  • J2EE
阅读更多

现在继续

四、Ation ActionForm 已经JSP页面

drug_list.jsp

不知道怎么贴Html代码,一贴就出问题。。我还以为字数限制。汗。。

代码放到附件中

BaseForm代码,BaseForm中封装与分页相关属性

java 代码
  1. //页码   
  2.     protected int pageNo;   
  3. //  每页显示数量   
  4.     protected int pageSize;   
  5. //  排序字段   
  6.     protected String sortType;   
  7. //  排序类型   
  8.     protected String isDesc;   
  9. //  总页数   
  10.     protected int totalPage;  

DrugQueryForm代码,DrugQueryForm 放置查询相关属性

java 代码
  1. //查询关键字   
  2.     private String keyString;   
  3.     //查询字段   
  4.     private String queryByOne;  

最后Action代码

java 代码
  1. public ActionForward goTo(ActionMapping mapping, ActionForm form,   
  2.             HttpServletRequest request, HttpServletResponse response) {   
  3.         DrugQueryForm dqf=(DrugQueryForm) form;   
  4.            
  5.         DetachedCriteria detachedCriteria = DetachedCriteria.forClass(Drug.class);   
  6.         //设置查询条件               
  7.         detachedCriteria.add(Restrictions.like(dqf.getQueryByOne(),"%"+dqf.getKeyString()+"%"));   
  8.         //取得符合条件的总记录数    
  9.         Long totalCount=ds.getDrugCount(detachedCriteria);   
  10.            
  11.         //设置排序方式及字段   
  12.            
  13.         if(dqf.getSortType()==null || dqf.getSortType().equals("")){   
  14.         }else{             
  15.             if (dqf.getIsDesc().equals("asc")){   
  16.                 detachedCriteria.addOrder(Order.asc(dqf.getSortType()));               
  17.             }else{   
  18.                 detachedCriteria.addOrder(Order.desc(dqf.getSortType()));   
  19.             }      
  20.         }   
  21.            
  22.         String go=request.getParameter("goto");   
  23. //      每页显示数目pageSize   
  24.         int pageSize=20;   
  25.         if (dqf.getPageSize()==0){   
  26.             pageSize=20;               
  27.         }else{   
  28.             pageSize=dqf.getPageSize();   
  29.         }   
  30.            
  31. //      总页数totalPage   
  32.         int totalPage=1;           
  33.         if (totalCount>dqf.getPageSize()){   
  34.         totalPage=(int)Math.ceil(Float.parseFloat(totalCount.toString())/pageSize);   
  35.         }   
  36.         dqf.setTotalPage(totalPage);   
  37.         //前一个    
  38.         if (go.equals("previous")){   
  39.             if (dqf.getPageNo()>1){   
  40.             dqf.setPageNo(dqf.getPageNo()-1);   
  41.             }else{   
  42.             dqf.setPageNo(1);   
  43.             }   
  44.         }   
  45.         //下一个   
  46.         if (go.equals("next")){   
  47.             if(dqf.getPageNo()
  48.             dqf.setPageNo(dqf.getPageNo()+1);   
  49.             }   
  50.         }   
  51.            
  52. //      最后一页   
  53.         if (go.equals("end")){dqf.setPageNo(totalPage);}           
  54. //      第一页   
  55.         if (go.equals("frist")){dqf.setPageNo(1);}     
  56.         //直接跳页   
  57.         if(go.equals("gotoPage")){   
  58.             if (dqf.getPageNo()<=1){dqf.setPageNo(1);}   
  59.             if (dqf.getPageNo()>=totalPage){dqf.setPageNo(totalPage);}                     
  60.         }   
  61.            
  62.         List testList=ds.listByConditions(detachedCriteria,dqf.getPageNo(),pageSize);      
  63.         request.setAttribute("testList", testList);   
  64.         request.setAttribute( "DrugQueryForm", dqf );   
  65.         return mapping.findForward( "list" );   
  66.            
  67.     }  
分享到:
评论
5 楼 myyate 2008-06-02  
kidfang 写道
LS的评论没意义.
说明问题才是最主要的.

其实楼主几层都用了DetachedCriteria,主要原因就是DetachedCriteria只需要根据域对象的属性名来操作操作就可以实现很多功能,说实话,这样做还真的不如不分层。
我们项目中一般都是自己写QueryCondition/BeanQueryCondition,功能与DetachedCriteria一样,然后用Expression来组成HQL或者SQL(这儿区别就是一个策略模式),当然,生成SQL hibernate已经给你写好,功能很强大,也可以自己实现由域对象到table的映射。
4 楼 罪恶的小手 2008-06-02  
有的地方还是不太理解..

下载下来看看吧,, 
3 楼 kidfang 2007-12-13  
LS的评论没意义.
说明问题才是最主要的.
2 楼 simon1118 2007-11-27  
你一个hibernate api耦合了三个层,要是这样做不如不分层!
1 楼 sonic1120 2007-11-27  
分页还能简单点么?应该还可以抽象出一个类吧?

相关推荐

    STRUTS2+HIBERNATE详细的分页实现代码详细的分页实现代码

    根据提供的标题、描述、标签及部分内容,我们可以了解到这篇文章主要探讨的是如何在Struts2与Hibernate框架结合下实现分页功能。接下来将详细解析Struts2与Hibernate如何协作完成这一任务。 ### Struts2与Hibernate...

    struts hibernate spring 分页ssh分页

    2. **在DAO层实现分页查询**:使用Hibernate的Criteria、HQL或者SQL配合分页参数(如页码和每页大小)来执行分页查询。 3. **在Service层处理分页逻辑**:Service层根据业务需求,调用DAO层的分页查询方法,并返回...

    hibernate,struts,spring,JSP,实现分页技术

    JAVA分页大全.doc Hibernate分页查询.doc hibernate实现分页技术.txt struts实现分页技术源代码txt Struts+hibernate制作...spring+struts+hibernate 分页问题.txt spring+hibernate分页技术.txt jsp实现分页技术.txt

    struts+hibernate+spring集成实现分页

    SSH(Struts、Spring、Hibernate)集成是Java Web开发中的常见模式,用于创建复杂的业务逻辑和数据管理。在本资料中,我们将深入探讨如何利用这三大框架实现分页功能。 首先,Struts作为MVC(模型-视图-控制器)...

    ssh struts hibernate spring 分页

    SSH(Struts、Hibernate、Spring)是Java Web开发中一种常见的技术栈,它结合了MVC框架Struts、对象关系映射工具Hibernate和依赖注入框架Spring。这些组件协同工作,为开发者提供了一种高效、灵活的开发环境。下面将...

    开发基于Struts Spring Hibernate Ajax的网上信息发布平台(Struts Hibernate Spring Ajax)--Chapter1

    在本章中,我们将深入探讨如何开发一个基于Struts、Spring、Hibernate和Ajax的网上信息发布平台。这四个技术是Java Web开发中的核心组件,它们各自承担着不同的职责,共同构建了一个强大而灵活的后端架构。 **...

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

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

    Struts2 hibernate spring分页实例

    在这个“Struts2 Hibernate Spring分页实例”中,开发者将展示如何在这些框架的集成环境中实现数据的分页显示。分页是Web应用中常见的一种功能,它能够帮助用户更好地浏览和管理大量的数据,避免一次性加载过多内容...

    spring+struts2+hibernate整合实现分页

    在这个项目中,“spring+struts2+hibernate整合实现分页”是一个基础教程,旨在帮助初学者理解如何在SSH框架下实现数据的分页展示。下面将详细讲解这个主题中的关键知识点。 1. **Spring框架**:Spring是Java应用的...

    struts2+spring2+hibernate3注册查询搜索分页实例

    搜索功能通常涉及到条件查询,可以利用Hibernate3的Criteria API或者HQL动态构造查询语句,根据用户输入的关键词匹配数据库中的记录。搜索结果同样可以结合分页进行展示。 总的来说,这个"Struts2+Spring2+...

    Hibernate+Struts+Spring 实现的通用分页查询

    总结来说,使用Hibernate、Struts和Spring实现的通用分页查询,涉及了Java Web开发中的多个层次,包括模型、持久层接口、持久层实现、业务层和服务层的交互,以及视图层的渲染。这种分页机制灵活且可复用,可以适应...

    spring+struts+hibernate实现分页

    总的来说,通过Spring、Struts和Hibernate的集成,我们可以构建出一个强大的Web应用框架,其中分页功能的实现主要依赖于Spring管理的SessionFactory、Struts的Action和Spring的IoC容器,以及自定义的PageUtil和Page...

    Struts2 hibernate spring分页配套lib(2)

    Struts2 hibernate spring分页配套lib(2) 上传的可真慢啊 Struts2 hibernate spring分页配套lib(3)我始终上传不上去 不知道怎么弄的 例子运行http://localhost:8080/page/emp/list.action

    Struts+Hibernate+Spring的分页

    总结来说,这个项目展示了如何在Struts、Hibernate和Spring三大框架下实现分页功能,涵盖了前端请求处理、后端分页逻辑以及数据查询的各个方面。无论是SQL还是HQL,都能有效地应用于分页场景,开发者可以根据项目...

    struts hibernate spring 分页 ssh 控件 实验室 管理 系统

    在SSH框架下,可以通过Struts的拦截器或Spring的Pageable接口来实现分页查询,从而避免一次性加载大量数据导致的性能问题。 DWR(Direct Web Remoting)是一种JavaScript到Java的远程调用技术,它使得前端能够直接...

    Struts2 hibernate spring分页配套lib(1)

    Struts2 hibernate spring分页配套lib 共三个分卷 这是一

    Struts2 hibernate spring分页配套lib(3)

    Struts2 hibernate spring分页配套lib(3) 上次怎么没成功啊

    使用Struts + Spring + Hibernate完成分页笔记

    在分页实现中,Spring可以管理Struts的Action类以及Hibernate的数据访问对象(DAO)。通过Spring的IOC(Inversion of Control,控制反转),我们可以将DAO的实例注入到Action中,使得Action无需关心DAO的具体创建...

    Struts+Hibernate+Spring整合分页实例(带排序功能)part1

    这是Java常用框架阶段在为学生答疑时做的一个SSH整合分页实例(第一部分),涉及了SSH整合、日期模糊查询、查询条件绑定、查询结果排序等功能,希望能为大家提供一些思路。 分页是绝大多数MIS系统必需的功能之一,...

    ext3+struts2+hibernate+spring的CRUD+分页

    "ext3+struts2+hibernate+spring的CRUD+分页"是一个典型的Java Web开发组合,用于实现全面的数据管理功能。这个组合充分利用了各个框架的优势,提供了一个强大的后端数据处理和前端展示的解决方案。 首先,EXT3是一...

Global site tag (gtag.js) - Google Analytics