微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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. <?xmlversion="1.0"encoding="UTF-8"?>
  2. <!DOCTYPEdwrPUBLIC"-//GetAheadLimited//DTDDirectWebRemoting3.0//EN""http://getahead.org/dwr/dwr30.dtd">
  3. <dwrallow>
  4. createcreator="new"javascript="MyDWR"paramname="class"value="com.DWRTest.Controller.MyDWR"/>
  5. </createconvertconverter="bean"match="com.DWRTest.model.*">


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

假设model下有一个POJO:

[java] copy
    packagecom.DWRTest.model;
  1. publicclassUser{
  2. privateStringusername;
  3. privateStringpassword;
  4. publicStringgetUsername(){
  5. returnusername;
  6. }
  7. voidsetUsername(Stringusername){
  8. this.username=username;
  9. }
  10. publicStringgetpassword(){
  11. returnpassword;
  12. voidsetPassword(Stringpassword){
  13. this.password=password;
  14. }

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

1.DWR获得JAVA传递的对象

java代码

copy
    publicUsergetMyUser(){
  1. Useruser=newUser();
  2. user.setUsername("tammypi");
  3. user.setPassword("1988");
  4. returnuser;

  5. 利用javascript访问这个对象:

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


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

copy

    publicList<User>getMyUserList(){
  1. List<User>list=newArrayList<User>();
  2. Useruser2= user2.setUsername("tammypi");
  3. user2.setPassword("1988");
  4. Useruser1= user1.setUsername("tony");
  5. user1.setPassword("1962");
  6. list.add(user1);
  7. list.add(user2);
  8. returnlist;

  9. 利用javascript访问list:

    copy
      MyDWR.getMyUserList(function(list){
    1. for(vari=0;i<list.length;i++){
    2. alert("访问第"+i+"个对象");
    3. alert(list[i].username+","+list[i].password);
    4. });


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

    copy

      publicMap<String,String>insertUser(Useruser){
    1. System.out.println(user.getUsername()+","+user.getpassword());
    2. Map<String,String>map=newHashMap<String,String>();
    3. map.put(user.getUsername(),user.getpassword());
    4. returnmap;

    5. 利用javascript访问返回的map:

      copy
        varmyUser=newObject();
      1. //传对象1
        /* var u = {
        username : "aaaaaaaaaaaa",
        password : "bbbbbbbbbbbb"
        }; */

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


      4.DWR传递对象数组:

      copy

        voidinsertUserList(User[]users){
      1. inti=0;i<users.length;i++){
      2. Useruser=users[i];
      3. System.out.println("用户名:"+user.getUsername()+",密码:"+user.getpassword());

      4. javascript代码

        copy
          vararr=newArray();
        1. varmyUser1=newObject();
        2. myUser1.username="kkdkf";
        3. myUser1.password="kj";
        4. varmyUser2= myUser2.username="kkdkf113434";
        5. myUser2.password="kj343434";
        6. arr[0]=myUser1;
        7. arr[1]=myUser2;
        8. MyDWR.insertUserList(arr);

        版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

        相关推荐