`

基于DWR、Hibernate、Spring实现的分页(一)

    博客分类:
  • Java
阅读更多

这是一个自己前些天写的例子,现在直接切入主题。

(图一 代码调用流程图)

 

以上是大致整个流程的调用过程。得到后台数据的方法主要是基于Ajax实现的,那么,在此使用了DWR框架,对于DWR框架的介绍,大家可以利用Google进行搜索,它主要是方便我们在前台页码利用Javascript去调用后台的Java代码。在示例中的话,我是利用了DWR中StudentUtils的paginationAllStudent()获得数据并在前台显示,而这个paginationAllStudent()方法,就是对应与后台Java代码中的StudentinfoDAO.paginationAllStudent()方法。这里只是类名的不同,因为在DWR配置文件中进行了配置。

接下来分析一下主要的代码。

(1)PaginationSupport类,具体代码实现不写,主要用于封装当前页面信息。如:当前第几页,共多少条记录,前后页索引等。

public class PaginationSupport  implements java.io.Serializable {
	
	public final static int PAGESIZE = 10;

	private int pageSize = PAGESIZE;
	
	private int totalCount;
    
	private int currentPage;

	private int startIndex;

	private int[] indexes = new int[0];

	private int nextIndex;

	private int previousIndex;

	private int pageCount;

	private List items; //存放从数据库取得的数据

	private int lastIndex;
        
         ....   
         ....

}

 (2)StudentinfoDAO类中的paginationAllStudent()方法,主要是用于获得数据,返回PaginationSupport类型,

 (3)DWR配置文件

<!--因为我使用了Spring,所以采取了这种方式-->
<create creator="spring" javascript="StudentUtils">
	<param name="beanName" value="studentinfoDAO" />  
</create>
<!--如果一般情况下,使用以下配置就可以了-->
<create creator="new" javascript="Demo">
	<param name="class" value="your.java.Bean" />
</create>

<!--转换前台获得数据可能用到的JavaBean-->
<!--效果即可以使用以下类中的getXXX方法在前台得到数据-->
<convert match="org.wiki.student.utils.PaginationSupport" converter="bean"/>
<convert match="org.wiki.student.domain.models.*" converter="bean"/>

 (4)前台页面Javascript代码

function getData(startIndex){
     //调用DWR中的方法获得数据,startIndex翻页索引
    //假如每页5条数据,那么第一页为0,第二页为5...
    //callback为DWR中的回调函数,用于获得数据
     StudentUtils.paginationAllStudent(startIndex, callback);
     }
     
     //定义回调函数,即如何显示数据
     function callback(data){
          //这里采用dwr工具包util中方法进行数据输出
          //注意这里的data参数,出现多次,并非指同一个对象
         //首先清空页面中id为tableContent的tbody标签数据
         dwr.util.removeAllRows("tableContent");
         
        //定义数据输出方式的一个函数组。
         //以下data参数其实可以自己任意命名
         var cellfuncs = [function(data){
         //获得当前数据,并构建一个超链接
         var aTemp = document.createElement("a");
         aTemp.href="${pageContext.request.contextPath }/student/course.do?sid="+data.stuid;
         aTemp.innerHTML=data.stuid+"查看详情";
         return aTemp;},
  						  function(data){return data.stuno;},
  						  function(data){return data.stuname;},
  						  function(data){
                                                  //后台数据为m或w 字符,在此格式化输出
  						  if(data.sex=='m')
  						    return '男';
  						  else 
  						    return '女';
  						  }, 
  						  function(data){ return data.fomartDate;},
  						  function(data){return data.address;},  
  						  function(data){return data.telephone;},  
  						  function(data){return data.remark;},
  						 ] 
	 //为id是tableContent的tbody填充数据,数据集存放在data.items,
        // 填充的输出方式为cellfuncs   
         dwr.util.addRows("tableContent",data.items,cellfuncs);         
     }

 以上基本上是主要涉及的代码,可能还会涉及到一些页面初始化的Javascript,需要的可以联系我。

  • 大小: 31 KB
分享到:
评论
4 楼 wikimo 2010-01-21  
示例代码见:
http://wikimo.iteye.com/blog/356833
3 楼 stuhack0303 2010-01-21  
最好把代码分享下吧,谢谢。
2 楼 313216444 2009-10-20  
谢谢楼主的分享,我想看一下页面的代码是如何实现的?就是在页面填充tbody的那里
1 楼 zhuliangjack 2009-03-28  
可以发个完整的源码吗  谢谢……

相关推荐

    基于DWR、Hibernate、Spring实现的分页(二)

    NULL 博文链接:https://wikimo.iteye.com/blog/356833

    dwr+spring+hibernate的示例

    1、在dwr中尝试编写的一些通用的代码,包括如何编写一个通用的列表显示框并实现分页、如何编写一个通用的单行编辑框、如何编辑一个通用的存盘和删除程序等等。 &lt;br&gt;2、在dwr中如何与spring兼容,调用bus中的方法...

    struts+spring+hibernate+dwr+分页例子

    重磅推出 struts+spring+hibernate+dwr整合分页例子

    Hibernate+Spring+DWR分页(原创)

    超强分页 无刷新: 已实现功能:增,删,改,分页 排序 批量(增,删,改)

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

    struts hibernate spring 分页 ssh 控件 实验室 管理 系统 , dwr ,ajax 个人的毕业设计,还是很不错的,

    Ext_Dwr_Spring_Hibernate完美结合,工程实例

    其中edit-grid2.html页面中的数据是利用dwr调spring,进过spring中的业务方法掉hibernate来操作数据库完成的,涉及数据库的增,删,改,查。 涉及分页。利用到了PagingDWRProxy,DWRProxy等。 是在以前发的一个例子...

    高效率的dw+spring+hibernate分页演示例子

    dwr+spring+hibernate分页演示例子.对dwr框架有兴趣可以参考参考。

    Ext_Dwr_Spring_Hibernate任务管理系统

    涉及分页表格,权限,邮件,增上改查等等。

    ExtJs+Dwr带分页分组传参后台排序功能的grid

    主要包含:这个主要用到ExtJS+DWR+Spring+Hibernate,主要包括浏览页(usernamerecord.jsp),脚步文件(usernamerecord.js),dwr分页代理脚本文件(dwrproxy.js),实体类(Record.java),Dao接口(RecordDao),...

    Struts2 Spring3.0 Hibernate3.3 整合全注解配置

    Struts2 Spring3.0 Hibernate3.3 全注解配置,避免了大量业务类在Spring文件的配置,整合了DWR3.0,displayTag 物理分页技术的实现。树形菜单。 另外数据库,在下一个资源;由于20MB的限制。 有问题的话留言。

    (3.0版本)自己写的struts2+hibernate+spring实例

    jar包:项目中除了使用了struts2,hibernate3.0和spring1.8以外(用spring2.0的包也可以.不能低于1.8的包.)还是用了junit,ajax,第三方的table组件.等等.所以需要下载相对应的包. 为了上传jar.我专门申请了一个网盘.所有...

    Spring2.5+Struts2.0+hibernate3.0+Dwr+jquery+displayTag

    1 基于SSH,service采用 annotation注入减少配置 2 利用struts2 的LoginAction-validation.xml 3 在bean里把service包;暴露DWR,写了一个验证用户名的流程 4 采用jpa作为POJO,还是减少配置 5 加入display的分页,并且...

    struts2 spring hibernate所需jar包

    struts2+spring2.5+hibernate3.2整合所需的所有jar包,并额外包含了dwr.jar、分页组件pager-taglib、绘图组件jfreechart.jar、Excel解析工具包jxl.jar、数据库连接池工具包proxool.jar

    低清版 大型门户网站是这样炼成的.pdf

    3.7.2 基于dwr的ajax实现 179 3.7.3 基于dwr的ajax表单验证 183 3.7.4 基于json插件的ajax实现 185 3.8 小结 190 第4章 orm中间件名流hibernate 3接管持久层 191 4.1 orm简介 191 4.1.1 持久化与持久层 191 ...

    Displaytag dwr 分页

    Displaytag+ spring+ hibernatedwr maven管理工程

    SSH2增删改查带分页上传图片(带预览),struts2

    struts2+spring2.5+hibernate3.2+dwr+MySQL驱动包 把上述包导了就没错了。 打包有个user.txt为数据库导出的,你导入mysql就行,里面的图片路径你没有,所以不会有图片,不用理会。test文件夹则是项目。 代码全,...

    SSH例子

    功能:使用dwr完成在客户端无刷新的分页排序等 &lt;br&gt;工具:MyEclipse 6.0,数据库SQLSERVER 2000 &lt;br&gt;数据在SQL文件夹下,Jobs是pubs数据库自带的 &lt;br&gt;主要的三个页面,emp是详细的,另两个是简单的复制修改,...

    一个基于ext的ajax小例子

    后台是hibernate-annotations和spring以及dwr的组合。 顺便演示了一下用servlet来返回json数据给ext框架的方式。 &lt;br&gt;在grid的演示部分,包括了分页的数据调用和如何处理来自于dwr的数据(dwr的部分和...

    基本于J2EE的Ajax宝典.rar

    19.2.2 分页实现 99 19.2.3 DAO 组件的实现 101 19.2.4 配置 DAO 组件 105 19.3 实现业务逻辑组件 105 19.3.1 业务逻辑组件的接口 105 19.3.2 业务逻辑组件的实现类 107 19.3.3 配置业务逻辑组件 111 19.4 在...

Global site tag (gtag.js) - Google Analytics