dwr 异步传递对象

简介: 注意在导入js文件时必须先导入系统的js,再导入自己的      <script type='text/javascript' src='jquery.js'></script> <script type='text/javascript' src='dwr/engine.js'></script>      &


注意在导入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);  
目录
相关文章
|
6月前
|
JavaScript 前端开发
49dwr - 传递额外的数据到 callback 函数
49dwr - 传递额外的数据到 callback 函数
20 0
|
18天前
|
Java Spring
SpringBoot+async异步调用接口以及几个任务同时完成和异步接口实现和调用
SpringBoot+async异步调用接口以及几个任务同时完成和异步接口实现和调用
21 0
|
6月前
|
XML Java 数据格式
异步编程 - 08 Spring框架中的异步执行_TaskExecutor接口和@Async应用篇
异步编程 - 08 Spring框架中的异步执行_TaskExecutor接口和@Async应用篇
44 0
|
6月前
|
Java Spring
异步编程 - 08 Spring框架中的异步执行_TaskExecutor接口和@Async应用篇2
异步编程 - 08 Spring框架中的异步执行_TaskExecutor接口和@Async应用篇2
61 0
|
6月前
|
JavaScript 前端开发
24dwr - DWR中的JavaScript(调用元数据对象)
24dwr - DWR中的JavaScript(调用元数据对象)
26 0
|
9月前
|
前端开发 Java Spring
SpringMVC 如何实现异步处理及内置异步请求类介绍
SpringMVC 如何实现异步处理及内置异步请求类介绍
73 1
|
存储 移动开发 前端开发
Struts2从后端向前端传递数据和OGNL访问用户自定义静态方法(五)
Struts2从后端向前端传递数据和OGNL访问用户自定义静态方法(五)
111 0
Struts2从后端向前端传递数据和OGNL访问用户自定义静态方法(五)
|
缓存
详细解析几个和网络请求有关的类
详细解析几个和网络请求有关的类 (一) —— NSURLSession详细解析几个和网络请求有关的类(二) —— NSURLRequest和NSMutableURLRequest详细解析几个和网络请求有关的类(三) —— NSURLConnection...
920 0
|
JavaScript Java 前端开发