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月前
|
Java
@Inherited 注解的作用
@Inherited 注解的作用
|
6月前
|
测试技术
金丝雀发布
金丝雀发布
|
6月前
|
XML Java 数据格式
微服务——SpringBoot使用归纳——@Configuration-2
在Spring框架中,被`@Configuration`注解的类被视为配置类,等同于传统的`applicationContext.xml`配置文件。通过此类,可使用Java代码定义Bean,替代XML配置。例如,声明一个`@Configuration`类并定义`@Bean`方法,即可注册相应Bean。启动时,利用`AnnotationConfigApplicationContext`初始化IOC容器,所有配置类及组件将被加载至容器中,实现依赖注入与管理。这种方式使配置更灵活、类型安全且易于维护。
70 0
|
安全 物联网 物联网安全
物联网设备的安全性评估与测试:技术深度解析
【7月更文挑战第7天】物联网设备的安全性评估与测试是保障物联网系统安全运行的重要环节。通过实施全面的安全性评估与测试,可以发现并修复设备中存在的安全漏洞和风险,提高整体安全防护能力。然而,由于物联网设备的多样性和复杂性以及安全标准与监管的缺失等挑战,测试工作需要不断创新和优化。未来,随着技术的不断进步和实践的深入,物联网设备的安全性评估与测试将更加完善和高效。
|
文字识别 搜索推荐 数据可视化
|
分布式计算 资源调度 Hadoop
在文件存储HDFS版上使用 Apache Flink
本文档主要介绍如何在挂载文件存储HDFS版的 Hadoop 集群上安装及使用 Flink。
605 0
|
移动开发 前端开发 JavaScript
AlloyImage:腾讯开源的 Web 图像处理库
这是一个来自腾讯 Web 前端 AlloyTeam的开源项目,是一个基于HTML5技术的专业图像处理库。
652 0
AlloyImage:腾讯开源的 Web 图像处理库
|
Kubernetes Serverless 开发工具
Knative 简介
本文作者来自蚂蚁金服系统部之芥 什么是 Knative? knative 是谷歌开源的 serverless 架构方案,旨在提供一套简单易用的 serverless 方案,把 serverless 标准化。
22971 0
解密中台战略:双中台+会员营销=?
阿里巴巴联合端点科技在阿里云峰会·上海峰会上隆重推出“基于双中台的会员营销解决方案”
4881 0