快速掌握DWR开发图解-2简单异步调…

接“快速掌握DWR开发图解-1环境搭建”
    1、工程构建
      为了进行简单的异步调用,需要在服务器端编写java代码作为测试,常用的调用可能会有3类返回值,1-String类型文本,2-单个对象,3-对象集合,因此建立如下目录结构,如图:
      快速掌握DWR开发图解-2简单异步调用
      为测试返回对象建立User类,代码如下:
     public class User {
       private String uname;
       private String upass;
//省略getter,setter
     }
     创建服务端的DwrService类,用于测试dwr前台调用的三种情况,分别返回String,User,List
     public class DwrService {
       public String sayHello(String name){
         return name+" 您好!服务器时间是:"+new Date().toString();
       }
       public User findUser(){
         return new User("admin","123");
       }
       public List findUsers(){
         List list=new ArrayList();
         list.add(new User("admin","123"));
         list.add(new User("abc","456"));
         list.add(new User("user","user"));
         return list;
       }
     }
      2、dwr配置
      打开dwr.xml,编写如下配置节点,将DwrService类转换成javascript调用,同时配置User类让dwr返回User对象对应的JSON对象。
      <dwr>
       <allow>
         <create creator="new" javascript="Service">
          <param name="class" value="service.DwrService"/>
         </create>
         <convert match="model.User" javascript="User" converter="bean"/>
        </allow>
      </dwr>
        快速掌握DWR开发图解-2简单异步调用
      3、发布
      将工程发布到tomcat中访问以下地址进行发布检查, http://localhost:8080/dwrtest/dwr
系统显示如下页面:
        快速掌握DWR开发图解-2简单异步调用
      打开Service链接,可以看到在dwr.xml中配置的Service已经发布好了,可以通过这个页面进行测试,直接输入参数,分别点击findUser,sayHello,findUsers后面的Execute按钮,可以看到执行效果。
快速掌握DWR开发图解-2简单异步调用

测试效果如下:
快速掌握DWR开发图解-2简单异步调用

    3、页面调用
     (1)新建test.html页面,在head部分导入3个js文件,可以直接从刚才看到的测试页面中复制
      <script type='text/javascript' src='/dwrtest/dwr/interface/Service.js'></script>
      <script type='text/javascript' src='/dwrtest/dwr/engine.js'></script>
      <script type='text/javascript' src='/dwrtest/dwr/util.js'></script>
    (2)编写调用函数如下:
        <script type="text/javascript">
      function hello() {    
       Service.sayHello('tom',callback);
       function callback(v){
         $(' testDiv ').innerText=v;
       }
      }
     </script>
      通过Service直接调用服务器端DwrService类中的sayHello方法,传入姓名参数‘tom’和一个回调函数名callback,并且实现callback,callback的参数v表示调用sayHello的返回值,可以直接将v显示在 testDiv中。
      $('id')这种用法是dwr中util.js的新用法,等同于document.getElementByIdx_x_x_x_x('id'),可以直接获得对象。
    (3)添加一个按钮和一个div
       <input type="button" value="test" οnclick="hello();">
     <div id="testDiv"></div>
    4、运行效果
    访问 http://localhost:8080/dwrtest/test.html,点击按钮,显示如下效果:
      快速掌握DWR开发图解-2简单异步调用
    5、返回对象的情况
    修改hello函数如下,调用findUser方法:
    <script type="text/javascript">
    function hello() {    
      Service.findUser(callback);
      function callback(v){
        $('testDiv').innerText=v.uname;
      }
    }
    </script>
    调用后testDiv上显示User对象的用户名"admin",此时的v代表的是一个User对象
    修改hello函数如下,调用findUsers方法:
    <script type="text/javascript">
    function hello() {     
      Service.findUsers(callback);
      function callback(v){
        $('testDiv').innerText=v[0].uname;
      }
    }
    </script>
    调用后testDiv上仍显示User对象的用户名"admin",但此时的v代表的是一个User对象数组。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值