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);  
目录
相关文章
|
Java Maven Nacos
Maven - Maven 核心概念一网打尽:轻松掌握项目构建与管理技巧
Maven - Maven 核心概念一网打尽:轻松掌握项目构建与管理技巧
296 0
|
Java
SpringBoot文件上传单文件多文件上传
SpringBoot文件上传单文件多文件上传
132 0
|
12月前
|
存储 人工智能 安全
Snowflake在云数据平台中的创新实践
Snowflake在云数据平台中的创新实践
347 58
|
11月前
|
人工智能 Cloud Native 大数据
连续11期,阿里云金融云蝉联第一!
连续11期,阿里云金融云蝉联第一!
235 4
|
Shell 网络安全 开发工具
gitbash 安装与使用
gitbash 安装教程
469 1
|
自然语言处理 前端开发 开发者
Angular国际化的秘密武器:手把手教你打造全球化应用,从多语言支持到日期格式化,让您的Web项目无国界畅通无阻的终极指南
【8月更文挑战第31天】在全球化背景下,软件需跨越语言与文化界限。本文探讨如何在Angular应用中实现国际化(i18n)与本地化,通过具体示例介绍多语言支持的实现过程。从创建项目、生成翻译文件到配置`TranslateModule`,详细讲解如何动态切换语言及处理日期、货币等区域特定格式。通过注册特定语言数据,提升应用的全球适应性,使开发者能轻松打造高质量、多语言支持的应用。
233 0
|
安全 Unix Linux
Linux的九大特点——说明为什么服务器都用Linux
Linux的九大特点——说明为什么服务器都用Linux
346 0
|
安全 Linux 测试技术
软件工程之维护阶段
软件工程之维护阶段
511 0
|
开发者
快速上手:如何在线生成App
现在,越来越多的企业和个人想要拥有一个自己的App,但是对于非开发者来说,如何实现这个目标呢?本文将介绍一种在线生成App的方法——将网页封装成App。
460 0
|
缓存 Java 数据库
Android 性能优化: 请解释ANR(Application Not Responding)是什么,如何避免它?
Android 性能优化: 请解释ANR(Application Not Responding)是什么,如何避免它?
362 0