dwr 异步传递对象


注意在导入js文件时必须先导入系统的js,再导入自己的


     <script type='text/javascript' src='jquery.js'></script>
<script type='text/javascript' src='dwr/engine.js'></script>
     <script type='text/javascript' src='dwr/util.js'></script>
     <script type='text/javascript' src='dwr/interface/userAct.js'></script>


首先,使用DWR,需配置dwr.xml:

[html]  view plain copy
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 3.0//EN" "http://getahead.org/dwr/dwr30.dtd">  
  3.   
  4. <dwr>  
  5.   <allow>  
  6.     <create creator="new" javascript="MyDWR">  
  7.       <param name="class" value="com.DWRTest.Controller.MyDWR"/>  
  8.     </create>  
  9.     <convert converter = "bean" match = "com.DWRTest.model.*"/>  
  10.   </allow>  
  11. </dwr>  


我们配置com.DWRTest.Controller.MyDWR,且配置com.DWRTest.model下的所有文件一个转换器。这个转换器,才使得DWR能够传递及访问对象。

假设model下有一个POJO:

[java]  view plain copy
  1. package com.DWRTest.model;  
  2.   
  3. public class User {  
  4.   
  5.     private String username;  
  6.     private String password;  
  7.       
  8.     public String getUsername() {  
  9.         return username;  
  10.     }  
  11.     public void setUsername(String username) {  
  12.         this.username = username;  
  13.     }  
  14.     public String getPassword() {  
  15.         return password;  
  16.     }  
  17.     public void setPassword(String password) {  
  18.         this.password = password;  
  19.     }  
  20. }  

那么可以做以下几个实验:

1.DWR获得JAVA传递的对象

java代码:

[java]  view plain copy
  1. public User getMyUser() {  
  2.           
  3.         User user = new User();  
  4.         user.setUsername("tammypi");  
  5.         user.setPassword("1988");  
  6.           
  7.         return user;  
  8.     }  


利用javascript访问这个对象:

[javascript]  view plain copy
  1. MyDWR.getMyUser(function(user){  
  2.       
  3.         alert(user);  
  4.         alert('用户名:' + user.username + ",密码:"+user.password);  
  5. }  


2.DWR获得JAVA传递的对象List:

java代码:

[java]  view plain copy
  1. public List<User> getMyUserList() {  
  2.           
  3.         List<User> list = new ArrayList<User>();  
  4.           
  5.         User user2 = new User();  
  6.         user2.setUsername("tammypi");  
  7.         user2.setPassword("1988");  
  8.           
  9.         User user1 = new User();  
  10.         user1.setUsername("tony");  
  11.         user1.setPassword("1962");  
  12.   
  13.         list.add(user1);  
  14.         list.add(user2);  
  15.           
  16.         return list;  
  17.     }  


利用javascript访问list:

[javascript]  view plain copy
  1. MyDWR.getMyUserList(function(list){  
  2.           
  3.             for(var i=0;i<list.length;i++) {  
  4.               
  5.                 alert("访问第"+i+"个对象");  
  6.                 alert(list[i].username+","+list[i].password);  
  7.             }  
  8.         });  


3.DWR传递对象,并访问JAVA返回的Map:

java代码:

[java]  view plain copy
  1. public Map<String,String> insertUser(User user){  
  2.           
  3.         System.out.println(user.getUsername()+","+user.getPassword());  
  4.           
  5.         Map<String,String> map = new HashMap<String,String>();  
  6.         map.put(user.getUsername(), user.getPassword());  
  7.           
  8.         return map;  
  9.     }  


利用javascript访问返回的map:

[javascript]  view plain copy
  1. var myUser = new Object();  
  2.                        //传对象1
    /*   var u = {
    username : "aaaaaaaaaaaa",
    password : "bbbbbbbbbbbb"
    }; */

    //传对象2
       var user = {};
    user.username="ddddddddddd";
    user.password="dddddddddddddddd";
  3.           
  4.         MyDWR.insertUser(myUser,function(dat11){  
  5.           
  6.             for(var key in dat11) {  
  7.               
  8.                 alert(key+","+dat11[key]);  
  9.             }  
  10.         });  


4.DWR传递对象数组:

java代码:

[java]  view plain copy
  1. public void insertUserList(User[] users){  
  2.           
  3.         for(int i=0;i<users.length;i++){  
  4.               
  5.             User user = users[i];  
  6.             System.out.println("用户名:"+user.getUsername()+",密码:"+user.getPassword());  
  7.         }  
  8.     }  


javascript代码:

[javascript]  view plain copy
  1. var arr = new Array();  
  2.         var myUser1 = new Object();  
  3.         myUser1.username = "kkdkf";  
  4.         myUser1.password = "kj";  
  5.         var myUser2 = new Object();  
  6.         myUser2.username = "kkdkf113434";  
  7.         myUser2.password = "kj343434";  
  8.         arr[0]=myUser1;  
  9.         arr[1]=myUser2;  
  10.         MyDWR.insertUserList(arr);  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值