加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

dwr 异步传递对象

发布时间:2020-12-16 01:49:31 所属栏目:百科 来源:网络整理
导读:注意在导入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/javas


注意在导入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);

          (编辑:李大同)

          【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读