dwr的用法

ajax也许很多人比较熟悉,然而知道dwr的人或许还不是很多,但是dwr可以比ajax更加简单的实现异步(异步即不刷新页面,就能访问数据库),大大提高开发效率.
 使用dwr开发的一般步骤:
  1. 到如下地址 http://getahead.ltd.uk/dwr/下载dwr软件包 dwr.jar,dwr有多个版本,要注意与jdk的兼容.
  2. 安装软件包:把dwr.jar文件拷贝到web营养的WEB-INF/lib目录下
  3. 修改web.xml文件,加入如下内容:

    <servlet>
    <servlet-name>dwr-invoker</servlet-name>
    <display-name>DWR Servlet</display-name>
    <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
    <init-param>
         <param-name>debug</param-name>
         <param-value>true</param-value>
    </init-param>
    </servlet>

    <servlet-mapping>
    <servlet-name>dwr-invoker</servlet-name>
    <url-pattern>/dwr/*</url-pattern>
    </servlet-mapping>

  4. 在WEB-INF目录下建立文件dwr.xml(该文件即为dwr的配置文件),在该文件里,需要配置javaScript要用的java类,主要配置两个属性:javascript:该属性相当于定义了javascript里调用的类变量,dwr会自动生成该文件名的js文件,param里配置的name="class",value应该配置实现类路径,如下内容配置了js里直接调用java的Date类和一个测试类的配置模式:

    <!DOCTYPE dwr PUBLIC
        "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN"
        "http://www.getahead.ltd.uk/dwr/dwr10.dtd">

    <dwr>
    <allow>
        <create creator="new" javascript="JDate">
          <param name="class" value="java.util.Date"/>
        </create>
        <create creator="new" javascript="Demo">
          <param name="class" value="your.java.Bean"/>
        </create如果返回类型是对象的话应该增加如下对象类型配置,可以配置任意多个对象类型<convert converter="bean"
            match="com.ljm.dwr.Person"/>
            <convert converter="bean"
            match="com.ljm.dwr.Animal"/>

    </allow>
    </dwr>

  5. dwr.xml的配置信息简要说明:creator="new",表示调用类的默认构造函数生成对象,javaScript="Demo",表示在javascript里通过该变量调用类里方法,后面两项指定类路径

  6. 重新启动tomcat服务器

  7. 测试安装效果,http://localhost:8080/应用名/dwr/

  8. 如果成功显示页面,说明安装正确

  9. 写一个测试页面(html或jsp文件),注意文件里一定要加入如下两句js文件引入的代码.JDate.js文件是dwr引擎自动根据配置文件生成的.确保两个文件的引入位置正确。<script type='text/javascript' src='<%=basePath%>/dwr/interface/JDate.js'></script>
    <script type='text/javascript' src=<%=basePath%>/dwr/engine.js'></script>

  10. 在测试页面里,javaScript部分调用定义好的类方法,如下测试代码,用dwr.xml文件里配置的JDate作为变量名直接调用java里的方法:function displayLocaleDate()
    {
       JDate.toLocaleString(showDate);
    } functioin showDate(date) {alert(date);}

  11. 方法调用简单说明,用dwr.xml配置的对象变量名,后面直接跟JAVA里定义的方法名,但是与JAVA调用不同的是,首先:返回值,不像JAVA里将返回值赋给另一变量,再对该变量操作,而是把将处理返回值的函数作为JAVA方法调用时的最后一个参数,定义处理方法时需要加上相应参数,然后在处理方法里,返回值自动作为实参传入处理方法,调用JAVA方法时,前面部分参数是JAVA方法的正常参数,最后一个参数是处理返回结果的方法名。如果返回结果是对象的话,在处理方法里,通过对象的属性名获得对象的属性信息,如果返回值是数组的话直接通过数组下标获得数组元素对象,再通过属性名获得对象属性信息。如下代码:该方法处理数组返回类型的数据function showPerson(ps) {
       for (i=0;i<ps.length;i++) {
        //不能如下将数组元素强制类型转换
        //Person p=(Person)ps[i];
        alert(ps[i].name)
       }
    }

  12. 如果JAVA方法里返回值类型是List,调用时,访问返回值的方法与等同于数组类型,通过length属性获得结果数,然后通过下标逐个访问每个元素

     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值