DWR的简单使用

喜欢ヅ旅行 2021-10-06 13:46 481阅读 0赞

简介:dwr是一种开源的封装的ajax框架,可以在前台页面直接调用后台的java函数。


1.必须jar包:

  • dwr.jar 以及 common-logging.jar 放置在 WebRoot/WEB-INF/lib下。
  • jar包: http://pan.baidu.com/s/1bfRcFs

2.配置dwr环境之web.xml:/WebRoot/WEB-INF/web.xml

  • 先上一段代码:


    dwr-invoker
    org.directwebremoting.servlet.DwrServlet

    debug
    true


    classes
    java.lang.Object


    config-1
    /WEB-INF/classes/dwr/dwr_core.xml


    config-2
    /WEB-INF/classes/dwr/dwr_xt.xml


    config-3
    /WEB-INF/classes/dwr/dwr_wf.xml


    config-4
    /WEB-INF/classes/dwr/dwr_xm.xml


    config-5
    /WEB-INF/classes/dwr/dwr_gys.xml


    config-6
    /WEB-INF/classes/dwr/dwr_zj.xml


    config-7
    /WEB-INF/classes/dwr/dwr_wt.xml


    config-8
    /WEB-INF/classes/dwr/dwr_ht.xml

    100

因为本项目较大,故配置了多个dwr.xml文件。

  1. <servlet-mapping>
  2. <servlet-name>dwr-invoker</servlet-name>
  3. <url-pattern>/dwr/*</url-pattern>
  4. </servlet-mapping>

其中<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>中的值,可以查看dwr.jar中DWrServlet.class的路径。

这里写图片描述


3.配置dwr环境之dwr.xml之dwr_gys.xml:(上面截图也可以看到配置有多个dwr.xml文件,选其一代码少的来讲述)

  • 先上份完整代码( dwr_gys.xml )

    <?xml version=”1.0” encoding=”UTF-8”?>
    <!DOCTYPE dwr PUBLIC “-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN” “http://www.getahead.ltd.uk/dwr/dwr20.dtd">



















  • dwr_gys.xml 的dtd 地址可在dwr.jar中查看dwr.xml文件
    这里写图片描述

    <?xml version=”1.0” encoding=”UTF-8”?>
    <!DOCTYPE dwr PUBLIC “-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN” “http://www.getahead.ltd.uk/dwr/dwr20.dtd">

  • dwr.xml是dwr的核心配置文件,主要的标签有:<converter>、<convert>、<create>这三个标签。  
    1 <converter>标签是dwr中内置的转换器。我们也可以使用自己写的转换器,不过dwr提供的转换器已经足够了,所以这个标签,一般不会自己去写。

    2 <convert>标签是将converter中定义的转换器映射到的具体类型

3 标签是dwr中重要的标签,用来描述 java(服务器端) 与 javascript (客户端)的交互方式。
其中,creator和javascript是必须属性,其他可以忽略。creator包含有以下几个值:  
new:Java用“new”关键字创造对象  
none:它不创建对象 (v1.1+)
scripted:通过BSF使用脚本语言创建对象,例如BeanShell或Groovy  
spring:通过Spring框架访问Bean  
struts:使用Struts的FormBean (v1.1+)  
jsf:使用JSF的Bean (v1.1+)  
pageflow:访问Weblogic或Beehive的PageFlow (v1.1+)  
ejb3:使用EJB3 session bean (v2.0+)
[此处使用的是与Spring整合]

  1. <create javascript="GysEntity" creator="spring">
  2. <param name="beanName" value="gys.gysEntity" />
  3. <!-- 加include可以具体指定java类中关的方法,不加则默认类中全部为public的方法 -->
  4. <include method="generateDlh" />
  5. <include method="isZzjgdmhRepeat" />
  6. <include method="isGsmcRepeat" />
  7. </create>

spring.xml 配置文件中的bean→id,对应dwr.xml 中的param→value
这里写图片描述
dwr.xml 中的create→javascript,对应jsp/html 中引用的js文件
这里写图片描述


4.jsp/html 之javascript代码(因其js代码少,故选用的是SelectFbxxFacade.js来展示):

  1. var id = document.getElementById("blb").value;
  2. var flag=false;
  3. DWREngine.setAsync(false);
  4. SelectFbxxFacade.getDmbzById(id,function(dmbz){ //dmbz对应着java方法的返回值
  5. var data = dmbz.substr(0,8);
  6. if(data==bfl_hw){
  7. //所选择采购分类为货物
  8. if(!checkFormItem(myform.cgsl, "N" ,9, 0,5,"采购数量" )){ flag=true;return false;}
  9. }
  10. });//调用java方法,第二个参数是回调函数(也可写在外面)
  11. DWREngine.setAsync(true);
  12. if(flag){
  13. return false;
  14. }
  • 其中:

java方法:

这里写图片描述


在你项目主目录下输入/dwr,可以查看该项目下的所有dwr文件,并且可以测试。

这里写图片描述
这里写图片描述

发表评论

表情:
评论列表 (有 0 条评论,481人围观)

还没有评论,来说两句吧...

相关阅读

    相关 DWR

    DWR(Direct Web Remoting)是Java和JavaScript相结合的开源库,通过它可以简单、容易地构建Ajax程序,开发者无需了解 XMLHttpReque

    相关 dwr学习

    dwr学习 DWR是一个远程调用库,用于js调用java函数或者java调用js函数。 DWR主要由下面两部分组成: 运行一个Java Servlet服务器,接