zhyiwww
用平实的笔,记录编程路上的点点滴滴………
posts - 536,comments - 394,trackbacks - 0

在使用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.

  



|----------------------------------------------------------------------------------------|
                           版权声明  版权所有 @zhyiwww
            引用请注明来源 http://www.blogjava.net/zhyiwww   
|----------------------------------------------------------------------------------------|
posted on 2008-09-26 11:55 zhyiwww 阅读(2446) 评论(1)  编辑  收藏 所属分类: ajax

FeedBack:
# re: DWR中使用回调函数的传值问题[未登录]
2009-08-14 10:48 | 111
我也遇到这种问题,头疼呀  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: