首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

用dwr 向后台老板传递java对象

2012-08-31 
用dwr 向后台传递java对象例举一个例子:web.xml文件中的配置?xml version1.0 encodingUTF-8?!DOC

用dwr 向后台传递java对象
例举一个例子:

web.xml文件中的配置
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-name>anareport</display-name>
<!-- Desc: DwrServlet Mapping Config -->
<servlet>  
       <servlet-name>DWRServlet</servlet-name>  
       <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
       <init-param>
               <param-name>debug</param-name>
               <param-value>true</param-value>
       </init-param>
      <init-param>     
              <param-name>crossDomainSessionSecurity</param-name>     
              <param-value>false</param-value>     
       </init-param>
       <init-param>
               <param-name>allowScriptTagRemoting</param-name>
               <param-value>true</param-value>
       </init-param>
</servlet>  
<servlet-mapping>  
        <servlet-name>DWRServlet</servlet-name>  
        <url-pattern>/dwr/*</url-pattern>     
</servlet-mapping>
</web-app>

首先dwr.xml文件中的配置
<dwr>
      <allow>
            <create creator="new" javascript="carCmainUnderWriteList">
                  <param name="class" value="com.sinosoft.anareport.dwr.DWRAction.carUnderWriterListAction" />
            </create>
            <convert match="com.sinosoft.anareport.dwr.DWRAction.Com" converter="bean"  javascript="com"/> 
    </allow>
</dwr>

Com类:
package com.sinosoft.anareport.dwr.DWRAction; //( 为了有说服力 把Com类与carUnderWriterListAction都放在 DWRAction包下)

public class Com {
    private String comCode ;

    public String getComCode() {
         return comCode;
    }
    public void setComCode(String comCode) {
         this.comCode = comCode;
    }
}

dwr实例Action:carUnderWriterListAction如下:

package com.sinosoft.anareport.dwr.DWRAction;
public class carUnderWriterListAction {
     public String str2 (String name, Com com) {
           System.out.println("com.comCode = " + com.getComCode());
           System.out.print("name = " + name);
          return name;
     }
}

jsp页面:
<script type='text/javascript' src='/anareport/dwr/interface/carCmainUnderWriteList.js'></script>
<script type='text/javascript' src='/anareport/dwr/engine.js'></script>
<script type='text/javascript' src='/anareport/dwr/util.js'></script>

<script type="text/javascript">
      function test() {
            var c = new com();  // 在此处就可以直接new  javascript属性的值(在dwr中<convert  ......  javascript="com"/> )
            c.comCode = "06320003"; // 这里就可以设置Com类的属性值
            carCmainUnderWriteList.str2("candy",c,function(data){ // 这里的类Com的实例就可以直接传进去
                  alert("data="+data);
            });
      }
</script>
 
  <input type=button value="button" onclick="test();">

  访问jsp页面弹出来的内容为 data=candy,后台打印的com.comCode = 06320003  name = candy

  希望能够帮助一些求知的朋友。
1 楼 rensanning 2011-11-26   直接传对象即可:

carCmainUnderWriteList.str2("candy",{comCode:"06320003"},function(data){ ... }); 2 楼 anareport 2011-11-28   你好!您说的这种方法我也知道,您确定您往里面传的这个对象是Java对象,我现在说的是方法里面参数的是Java Object对象,然后在Java方法里面调用该对象其它的属性。请问要像您那样传不做任何转换,在调用的Java方法里面能像下面这么用吗?
System.out.println(candy.comCode);
您仔细看一下:str2()方法里面的第二个参数是什么,是Com对象。
3 楼 rensanning 2011-12-11   不只是对象,HashMap<Object>,List<Object>等都可以按我说的方式直接传到后台。自己试试就知道了。

热点排行