DWR中使用回调函数的传值问题

在使用DWR的时候,解决值得传递问题,可以通过回调函输实现对客户端的javascript的函数的调用。
同时可以通过DWR实现了通过javascript对java的调用。所以DWR解决了在Java和javascript之间的互相调用问题。

但是在实际的调用过程中,有些问题还是需要解决的,如:

如何在回调中传递串对象?
如何回调中传递Java对象?

如果,能实现传递串对象,其实,已经可以实现了在javascript和java之间的数据传递,也可以通过在java上组合成json串返回,就可以实现,和对象的轻松转换。

如果能实现传递对象,那不就省去了很多的问题,但是,这个问题,我也没有搞定。
不过象下面的例子,已经可以实现返回一个new Date()的Object对象了。不过,我看了一下,应该返回的是一个Date的串对象。

如下代码,是在Dwr中的调用
javascript:
   ChatManager.regist(username,{
     callback:function(obj){
     alert("call back");
     alert("obj : " + obj);
    
     var map = getMap("theMap");
     alert(map.x);
       
   }});

JAVA:

   public Object regist(String username,HttpServletRequest request){
    
     System.out.println("regist user "+ username);
    
     updateUsersList(username,true,request);
    
    
     return new User("aaa","dsfdssdfdsf");
  
   }

只有在此 regist方法有返回值得情况下,回调函数才能取到传入的值。
传递的如果是串类的对象,没有问题,如果我传递的是一个对象,就不能取到。

  
   public Object regist(String username,HttpServletRequest request){
    
     System.out.println("regist user "+ username);
    
     updateUsersList(username,true,request);
    
    
     return new A("myname");
  
   }
   注意:A是一个inner class,是在ChatManager里面定义的内部类。
   class A{
     private String uname;
    
     public A(String uname){
        this.uname = uname;
     }
    
     public String getUname(){
        return this.uname;
     }
   };
这种情况下,回调函输取得的就是null.

来源于:http://www.blogjava.net/zhyiwww/archive/2008/09/26/231268.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值