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

Ajax的DWR框架

阅读更多

2007-1-20 周三

配置DWR:

                          1、Web.xml中添加如下内容:

 

xml 代码
  1.    < servlet >   
  2. < servlet-name > dwr-invoker servlet-name >   
  3. < display-name > DWR Servlet display-name >   
  4. < description > Direct Web Remoter Servlet description >   
  5. < servlet-class > uk.ltd.getahead.dwr.DWRServlet servlet-class >   
  6. < init-param >   
  7. < param-name > debug param-name >   
  8. < param-value > true param-value >   
  9. init-param >   
  10.    servlet >   
  11.    < servlet-mapping >   
  12. < servlet-name > dwr-invoker servlet-name >   
  13. < url-pattern > /dwr/* url-pattern >   
  14.    servlet-mapping >   

 

                2、在web下新建dwr.xml配置文件

入门级的DWR例子

 

java 代码
  1. public   class  Apartment {   
  2.   
  3.      private   int  id;   
  4.   
  5.      private   int  bedrooms;   
  6.   
  7.      private   int  bathrooms;   
  8.   
  9.      private   int  price;   
  10.   
  11.      private  String address;   
  12.   
  13.      private  String city;   
  14.   
  15.      private  String province;   
  16.   
  17.      public   int  getId() {   
  18.          return  id;   
  19.     }   
  20.   
  21.      public   void  setId( int  id) {   
  22.          this .id = id;   
  23.     }   
  24.   
  25.      public  String getAddress() {   
  26.          return  address;   
  27.     }   
  28.   
  29.      public   void  setAddress(String address) {   
  30.          this .address = address;   
  31.     }   
  32.   
  33.      public   int  getBathrooms() {   
  34.          return  bathrooms;   
  35.     }   
  36.   
  37.      public   void  setBathrooms( int  bathrooms) {   
  38.          this .bathrooms = bathrooms;   
  39.     }   
  40.   
  41.      public   int  getBedrooms() {   
  42.          return  bedrooms;   
  43.     }   
  44.   
  45.      public   void  setBedrooms( int  bedrooms) {   
  46.          this .bedrooms = bedrooms;   
  47.     }   
  48.   
  49.      public  String getCity() {   
  50.          return  city;   
  51.     }   
  52.   
  53.      public   void  setCity(String city) {   
  54.          this .city = city;   
  55.     }   
  56.   
  57.      public   int  getPrice() {   
  58.          return  price;   
  59.     }   
  60.   
  61.      public   void  setPrice( int  price) {   
  62.          this .price = price;   
  63.     }   
  64.   
  65.      public  String getProvince() {   
  66.          return  province;   
  67.     }   
  68.   
  69.      public   void  setProvince(String province) {   
  70.          this .province = province;   
  71.     }   
  72. }  

 

java 代码
  1. package  ajax.dwr.simpledwr;   
  2.   
  3. import  java.util.ArrayList;   
  4. import  java.util.List;   
  5.   
  6. public   class  ApartmentDAO {   
  7.   
  8.      public  List findApartments( int  bedrooms,  int  bathrooms,  int  price) {   
  9.         List list = findList(bedrooms, bathrooms, price);   
  10.          return  list;   
  11.     }   
  12.   
  13.   
  14.      public   int  countApartments( int  bedrooms,  int  bathrooms,  int  price) {   
  15.          return  findList(bedrooms, bathrooms, price).size();   
  16.     }   
  17.   
  18.      private  List findList( int  bedrooms,  int  bathrooms,  int  price) {   
  19.         List list = initData();   
  20.          for  ( int  i =  0 ; i < list.size(); i++) {   
  21.             Apartment apartment = (Apartment) list.get(i);   
  22.              if  (apartment.getBedrooms() < bedrooms   
  23.                     && apartment.getBathrooms() < bathrooms   
  24.                     && apartment.getPrice() >= price) {   
  25.                 list.remove(i);   
  26.             }   
  27.         }   
  28.          return  list;   
  29.     }   
  30.   
  31.   
  32.      private  List initData() {   
  33.         List list =  new  ArrayList();   
  34.         Apartment apartment =  new  Apartment();   
  35.   
  36.         apartment.setId( 16001 );   
  37.         apartment.setBedrooms( 1 );   
  38.         apartment.setBathrooms( 1 );   
  39.         apartment.setPrice( 850 );   
  40.         apartment.setAddress( "123 King St. East" );   
  41.         apartment.setCity( "Toronto" );   
  42.         apartment.setProvince( "ON" );   
  43.         list.add(apartment);   
  44.   
  45.         apartment.setId( 16002 );   
  46.         apartment.setBedrooms( 2 );   
  47.         apartment.setBathrooms( 1 );   
  48.         apartment.setPrice( 1000 );   
  49.         apartment.setAddress( "1023 Yonge Ave" );   
  50.         apartment.setCity( "Toronto" );   
  51.         apartment.setProvince( "ON" );   
  52.         list.add(apartment);   
  53.   
  54.         apartment.setId( 16003 );   
  55.         apartment.setBedrooms( 2 );   
  56.         apartment.setBathrooms( 2 );   
  57.         apartment.setPrice( 1050 );   
  58.         apartment.setAddress( "27 Winchester St" );   
  59.         apartment.setCity( "Toronto" );   
  60.         apartment.setProvince( "ON" );   
  61.         list.add(apartment);   
  62.   
  63.         apartment.setId( 16004 );   
  64.         apartment.setBedrooms( 2 );   
  65.         apartment.setBathrooms( 2 );   
  66.         apartment.setPrice( 1350 );   
  67.         apartment.setAddress( "774 Yonge Ave" );   
  68.         apartment.setCity( "Toronto" );   
  69.         apartment.setProvince( "ON" );   
  70.         list.add(apartment);   
  71.   
  72.         apartment.setId( 16005 );   
  73.         apartment.setBedrooms( 4 );   
  74.         apartment.setBathrooms( 3 );   
  75.         apartment.setPrice( 1550 );   
  76.         apartment.setAddress( "1054 Rouge Valley Dr." );   
  77.         apartment.setCity( "Toronto" );   
  78.         apartment.setProvince( "ON" );   
  79.         list.add(apartment);   
  80.   
  81.         apartment.setId( 16006 );   
  82.         apartment.setBedrooms( 5 );   
  83.         apartment.setBathrooms( 1 );   
  84.         apartment.setPrice( 1850 );   
  85.         apartment.setAddress( "207 Queens Quay West" );   
  86.         apartment.setCity( "Toronto" );   
  87.         apartment.setProvince( "ON" );   
  88.         list.add(apartment);   
  89.   
  90.         apartment.setId( 16007 );   
  91.         apartment.setBedrooms( 3 );   
  92.         apartment.setBathrooms( 1 );   
  93.         apartment.setPrice( 1850 );   
  94.         apartment.setAddress( "10 Yorkville Ave." );   
  95.         apartment.setCity( "Toronto" );   
  96.         apartment.setProvince( "ON" );   
  97.         list.add(apartment);   
  98.   
  99.         apartment.setId( 16008 );   
  100.         apartment.setBedrooms( 4 );   
  101.         apartment.setBathrooms( 2 );   
  102.         apartment.setPrice( 1400 );   
  103.         apartment.setAddress( "3 Watline Dr" );   
  104.         apartment.setCity( "Toronto" );   
  105.         apartment.setProvince( "ON" );   
  106.         list.add(apartment);   
  107.   
  108.         apartment.setId( 16009 );   
  109.         apartment.setBedrooms( 2 );   
  110.         apartment.setBathrooms( 1 );   
  111.         apartment.setPrice( 1180 );   
  112.         apartment.setAddress( "98 St. Joseph St." );   
  113.         apartment.setCity( "Toronto" );   
  114.         apartment.setProvince( "ON" );   
  115.         list.add(apartment);   
  116.   
  117.         apartment.setId( 16010 );   
  118.         apartment.setBedrooms( 2 );   
  119.         apartment.setBathrooms( 2 );   
  120.         apartment.setPrice( 1050 );   
  121.         apartment.setAddress( "93 Lombard St." );   
  122.         apartment.setCity( "Toronto" );   
  123.         apartment.setProvince( "ON" );   
  124.         list.add(apartment);   
  125.   
  126.         apartment.setId( 16011 );   
  127.         apartment.setBedrooms( 3 );   
  128.         apartment.setBathrooms( 3 );   
  129.         apartment.setPrice( 1150 );   
  130.         apartment.setAddress( "7201 St. Clair Ave. West" );   
  131.         apartment.setCity( "Toronto" );   
  132.         apartment.setProvince( "ON" );   
  133.         list.add(apartment);   
  134.   
  135.         apartment.setId( 16012 );   
  136.         apartment.setBedrooms( 2 );   
  137.         apartment.setBathrooms( 1 );   
  138.         apartment.setPrice( 950 );   
  139.         apartment.setAddress( "12 Eglington Ave. E." );   
  140.         apartment.setCity( "Toronto" );   
  141.         apartment.setProvince( "ON" );   
  142.         list.add(apartment);   
  143.   
  144.         apartment.setId( 16013 );   
  145.         apartment.setBedrooms( 2 );   
  146.         apartment.setBathrooms( 2 );   
  147.         apartment.setPrice( 1100 );   
  148.         apartment.setAddress( "352 Dufferin St" );   
  149.         apartment.setCity( "Toronto" );   
  150.         apartment.setProvince( "ON" );   
  151.         list.add(apartment);   
  152.   
  153.         apartment.setId( 16014 );   
  154.         apartment.setBedrooms( 2 );   
  155.         apartment.setBathrooms( 2 );   
  156.         apartment.setPrice( 1350 );   
  157.         apartment.setAddress( "2224 Wellington St. W" );   
  158.         apartment.setCity( "Toronto" );   
  159.         apartment.setProvince( "ON" );   
  160.         list.add(apartment);   
  161.   
  162.         apartment.setId( 16015 );   
  163.         apartment.setBedrooms( 4 );   
  164.         apartment.setBathrooms( 3 );   
  165.         apartment.setPrice( 1550 );   
  166.         apartment.setAddress( "1454 College St." );   
  167.         apartment.setCity( "Toronto" );   
  168.         apartment.setProvince( "ON" );   
  169.         list.add(apartment);   
  170.   
  171.         apartment.setId( 16016 );   
  172.         apartment.setBedrooms( 5 );   
  173.         apartment.setBathrooms( 1 );   
  174.         apartment.setPrice( 1850 );   
  175.         apartment.setAddress( "256 Peter St." );   
  176.         apartment.setCity( "Toronto" );   
  177.         apartment.setProvince( "ON" );   
  178.         list.add(apartment);   
  179.   
  180.         apartment.setId( 16017 );   
  181.         apartment.setBedrooms( 3 );   
  182.         apartment.setBathrooms( 1 );   
  183.         apartment.setPrice( 1850 );   
  184.         apartment.setAddress( "6 The Esplanade" );   
  185.         apartment.setCity( "Toronto" );   
  186.         apartment.setProvince( "ON" );   
  187.         list.add(apartment);   
  188.   
  189.         apartment.setId( 16018 );   
  190.         apartment.setBedrooms( 4 );   
  191.         apartment.setBathrooms( 2 );   
  192.         apartment.setPrice( 1400 );   
  193.         apartment.setAddress( "9 Mercer St." );   
  194.         apartment.setCity( "Toronto" );   
  195.         apartment.setProvince( "ON" );   
  196.         list.add(apartment);   
  197.   
  198.          return  list;   
  199.     }   
  200.   
  201. }   
  202.   

 

     dwr.xml文件的配置
xml 代码
  1. < dwr >   
  2.      < allow >   
  3.          < convert   converter = "bean"   match = "ajax.dwr.simpledwr.Apartment" /> //定义bean   
  4.          < create   creator = "new"   javascript = "ApartmentDAO"   class = "ajax.dwr.simpledwr.ApartmentDAO" >   
  5.          < include   method = "findApartments" />   
  6.          < include   method = "countApartments" />   
  7.          create >   
  8.      allow >   
  9. dwr >   
js 代码
  1. "text/css"  media= "screen" >   
  2.        @ import  url( style.css );   
  3.         
  4.      
  5.   <script src=' dwr="" <="" span="">interface /ApartmentDAO.js'></script>   
  6.   <script src=' dwr="" engine.js'=""></script>   
  7.   <script src=' dwr="" util.js'=""></script>   
  8.   <script>   
  9.    //统计总数   
  10.    function  updateTotal() {   
  11.     $( "resultTable" ).style.display = 'none';   
  12.      var  bedrooms = document.getElementById( "bedrooms" ).value;   
  13.      var  bathrooms = document.getElementById( "bathrooms" ).value;   
  14.      var  price = document.getElementById( "price" ).value;   
  15.     ApartmentDAO.countApartments(loadTotal, bedrooms, bathrooms, price);   
  16.      //DWR使用得巧妙之处 ,调用ApartmentDAO的countApartments方法在传入bedrooms, bathrooms, price三个参数的同时   
  17.      //将其返回的结果 赋值给loadTotal(data)方法   
  18.   }   
  19.   
  20.    function  updateResults() {   
  21.     DWRUtil.removeAllRows( "apartmentsbody" ); //删除apartmentsbody的所有子child   
  22.      var  bedrooms = document.getElementById( "bedrooms" ).value;   
  23.      var  bathrooms = document.getElementById( "bathrooms" ).value;   
  24.      var  price = document.getElementById( "price" ).value;   
  25.     ApartmentDAO.findApartments(fillTable, bedrooms, bathrooms, price);   
  26.     $( "resultTable" ).style.display =  '' ;   
  27.   }   
  28.      
  29.    var  getId =  function (unit) {  return  unit.id };   
  30.    var  getAddress =  function (unit) {  return  unit.address };   
  31.    var  getBedrooms =  function (unit) {  return  unit.bedrooms };   
  32.    var  getBathrooms =  function (unit) {  return  unit.bathrooms };   
  33.    var  getPrice =  function (unit) {  return  unit.price };   
  34.        
  35.    function  loadTotal(data) {   
  36.     document.getElementById( "totalRecords" ).innerHTML = data;   
  37.   }   
  38.      
  39.    function  fillTable(apartment) {   
  40.     DWRUtil.addRows( "apartmentsbody" , apartment, [ getId, getAddress, getBedrooms, getBathrooms, getPrice ]);   
  41.   }   
  42.      
  43. </script>  
分享到:
评论

相关推荐

    ajax dwr 框架实现二级联动下拉列表源码

    总结来说,利用Ajax和DWR框架实现的二级联动下拉列表,使得用户可以在不刷新页面的情况下完成多级选择,提升了用户体验。同时,DWR的使用简化了前后端交互的复杂性,使得开发更为高效。通过阅读和理解提供的源代码,...

    Ajax DWR框架测试

    总之,Ajax DWR框架是实现高效、互动的Web应用的重要工具,它简化了前后端交互的过程,提高了开发效率,并且提供了丰富的功能和良好的安全性。在"JavaDwr"压缩包中,你可以探索和学习如何利用DWR来构建动态Web应用。

    AJAX DWR框架实现部分刷新效果

    DWR(Direct Web Remoting)是一个开源Java框架,它简化了AJAX在Java应用程序中的应用。DWR使得JavaScript和Java之间可以直接通信,就像它们是同一语言一样,消除了传统AJAX需要通过XML或JSON进行数据交换的复杂性。...

    AJAX框架DWR简单应用

    在提供的“AJAX框架DWR简单应用.pdf”文件中,你可能会找到关于如何设置DWR环境、编写Java接口、配置DWR配置文件、在前端JavaScript中使用DWR,以及示例代码和实际运行效果的详细教程。这个文件是学习和理解DWR工作...

    Ajax dwr框架 pdf

    **Ajax和DWR框架详解** Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使得网页实现异步更新。这种方式可以让...

    Ajax dwr框架实现自动补全功能

    在本文中,我们将深入探讨如何使用Ajax、Direct Web Remoting (DWR) 框架以及Hibernate ORM工具来实现一个自动补全功能。这个功能类似于百度搜索引擎中的输入提示,能够根据用户输入的字符动态地提供可能的搜索建议...

    AJAX 与 DWR框架

    总的来说,Ajax和DWR框架的结合使用,可以显著提升Web应用的用户体验,减少不必要的页面刷新,提高数据处理效率。同时,通过DWR与主流Java框架的集成,开发者可以更方便地在大型项目中引入Ajax技术,而不必重构大量...

    ajax的DWR框架入门例子

    在这个"ajax的DWR框架入门例子"中,我们将深入理解DWR如何工作以及如何在实际项目中应用。这个例子包含了源代码和调试成功的案例,这意味着我们可以直接运行和学习,而无需从零开始搭建环境。 首先,DWR的基本概念...

    AJAX_DWR框架

    **AJAX_DWR框架详解** AJAX (Asynchronous JavaScript and XML) 和 DWR (Direct Web Remoting) 是两种在Web开发中广泛使用的技术,它们共同构成了一个强大的框架,用于构建高度交互性和动态的Web应用程序。AJAX允许...

    AJAX技术之DWR框架入门

    **AJAX技术之DWR框架入门** AJAX(Asynchronous JavaScript and XML)是一种在无需刷新整个页面的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使得网页实现异步更新。这种技术可以提升...

    java+dwr框架实现聊天室

    Java+dwr框架实现聊天室是使用Java语言和dwr框架实现的服务器推技术,实现了实时通信的聊天室功能。下面将详细介绍该技术的实现过程和相关知识点。 一、dwr 框架简介 dwr(Direct Web Remoting)是一种基于Ajax...

    Ajax资料,DWR框架资料

    学习和理解Ajax及DWR框架,可以帮助开发者构建更加高效、互动性强的Web应用,提升用户在浏览网页时的体验。无论是前端的JavaScript编程,还是后端的Java服务,DWR都提供了强大的工具来简化这个过程。对于希望深入...

    Ajax + struts 与 ajax 的 dwr 框架的使用

    本篇文章将深入探讨如何在MyEclipse环境下,结合Struts与Ajax的DWR框架,实现高效的前后端通信。 ### 1. Struts与Ajax的集成 **Struts** 是一个基于MVC设计模式的Java Web框架,它将业务逻辑、视图和控制逻辑分离...

    DWR框架学习demo

    **DWR(Direct Web Remoting)框架学习指南** ...通过学习和实践DWR框架,开发者可以创建更加动态、响应式的Web应用,提升用户的交互体验。理解DWR的工作原理以及如何配置和使用,对于开发人员来说是非常有价值的技能。

    dwr框架的使用简介

    本文通过一个具体的示例——无限级树型菜单的实现,展示了如何使用DWR框架简化AJAX应用的开发过程。该示例主要涉及以下几个步骤: 1. **服务器端Java类设计**:首先需要定义服务器端的Java类,这些类包含了将被...

    java_ajax框架dwr

    **Java AJAX 框架 DWR 全面解析** DWR (Direct Web Remoting) 是一个强大的Java AJAX框架,它允许在浏览器和服务器之间进行直接的JavaScript与Java对象的交互,使得开发者能够轻松构建富客户端应用程序。DWR的出现...

    DWR AJAX框架(包含使用教程)

    1. **DWR框架基础** DWR的核心概念是反向Ajax,它创建了一种机制,使得JavaScript可以直接调用服务器端的Java方法,就像它们是本地函数一样。这样,开发者可以轻松地将服务器端的功能暴露给前端,而无需手动处理...

    DWR框架DWR框架

    例如,在压缩包内的文件"A051]使用DWR开发AJAX+For+J2EE.wrf"可能是一个演示或者教程,详细介绍了如何使用DWR框架在J2EE环境中构建AJAX应用。这个文件可能涵盖从安装DWR,配置web.xml,编写可远程调用的Java类,到在...

    dwr(ajax)框架jar包

    总的来说,DWR框架通过提供便捷的工具和库,使开发者能够更轻松地构建动态、交互性强的Web应用,利用Ajax技术提升用户体验,而这个"**dwr包**"就是实现这一目标的基础。在实际项目中,正确理解和使用这些jar文件及...

Global site tag (gtag.js) - Google Analytics