DWR的简单使用

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


1.必须jar包:


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

  • 先上一段代码:
    <servlet>
        <servlet-name>dwr-invoker</servlet-name>
        <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
        <init-param>
            <param-name>debug</param-name>
            <param-value>true</param-value>
        </init-param>
        <init-param>
            <param-name>classes</param-name>
            <param-value>java.lang.Object</param-value>
        </init-param>
        <init-param>
            <param-name>config-1</param-name>
            <param-value>/WEB-INF/classes/dwr/dwr_core.xml</param-value>
        </init-param>
        <init-param>
            <param-name>config-2</param-name>
            <param-value>/WEB-INF/classes/dwr/dwr_xt.xml</param-value>
        </init-param>
        <init-param>
            <param-name>config-3</param-name>
            <param-value>/WEB-INF/classes/dwr/dwr_wf.xml</param-value>
        </init-param>
                <init-param>
          <param-name>config-4</param-name>
          <param-value>/WEB-INF/classes/dwr/dwr_xm.xml</param-value>
        </init-param>
        <init-param>
          <param-name>config-5</param-name>
          <param-value>/WEB-INF/classes/dwr/dwr_gys.xml</param-value>
        </init-param>
        <init-param>
          <param-name>config-6</param-name>
          <param-value>/WEB-INF/classes/dwr/dwr_zj.xml</param-value>
        </init-param>
        <init-param>
          <param-name>config-7</param-name>
          <param-value>/WEB-INF/classes/dwr/dwr_wt.xml</param-value>
        </init-param>
        <init-param>
          <param-name>config-8</param-name>
          <param-value>/WEB-INF/classes/dwr/dwr_ht.xml</param-value>
        </init-param>
        <load-on-startup>100</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>dwr-invoker</servlet-name>
        <url-pattern>/dwr/*</url-pattern>
    </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>
    <allow>
        <convert match="java.lang.StringBuffer" converter="bean"></convert>
        <!--公共操作 登录账号唯一性检查  generateDlh:供应商注册 产生供应商操作员登录号-->
        <create javascript="GysEntity" creator="spring">
            <param name="beanName" value="gys.gysEntity" />
            <include method="generateDlh" />
            <include method="isZzjgdmhRepeat" />
            <include method="isGsmcRepeat" />
        </create>

        <create javascript="gysshFacade" creator="spring">
           <param name="beanName" value="gys.gysshFacade"></param>
           <include method="getSpsxZt"/>
           <include method="syncWwzcFiles" />
        </create>

    </allow>
</dwr>
  • 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中定义的转换器映射到的具体类型
 <convert match="java.lang.StringBuffer" converter="bean"></convert>
<!--  convert就是配置哪些java bean是可以通过dwr转换的,其包含converter,match属性,coverter就是选择转换的converter由init中配置,match就是可以转换的java bean -->

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整合]

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

spring.xml 配置文件中的bean→id,对应dwr.xml 中的param→value

dwr.xml 中的create→javascript,对应jsp/html 中引用的js文件


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

        var id = document.getElementById("blb").value;
        var flag=false;
        DWREngine.setAsync(false);
        SelectFbxxFacade.getDmbzById(id,function(dmbz){ //dmbz对应着java方法的返回值
            var data = dmbz.substr(0,8);
            if(data==bfl_hw){//所选择采购分类为货物
                if(!checkFormItem(myform.cgsl,  "N" ,9, 0,5,"采购数量" )){ flag=true;return false;}
            }
        });//调用java方法,第二个参数是回调函数(也可写在外面)
        DWREngine.setAsync(true);
        if(flag){
            return false;
        }
  • 其中:
 <!--  DWREngine.engine.setAsync(false);  //false为同步,true(默认)为异步 --> 

java方法:


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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏F_Alex

SpringCloud-微服务配置统一管理SpringCloud Config(七)

29030
来自专栏云计算教程系列

如何在Ubuntu 14.04上使用Bacula备份LAMP服务器

启动并运行应用程序服务器后,下一个重要步骤就是设置备份系统。备份系统允许您创建数据的定期备份副本,并从这些备份中还原数据。由于用户错误或任何计算机系统容易出现的...

12530
来自专栏Java学习123

shell获取当前工作目录绝对路径

2.6K70
来自专栏云原生架构实践

JHipster生成单体架构的应用示例

因为这个例子是生成单体架构的应用,所以这里选择默认选项Monolithic application,也就是单体架构的应用。

1.3K20

Go微服务,第10部分:集中式日志记录

在Go微服务博客系列的这一部分中,我们将介绍基于Logrus,Docker Gelf日志驱动程序和“作为服务的日志记录” Loggly服务的Go微服务的日志记录...

46540
来自专栏乐沙弥的世界

Linux 主机网络接入配置

网络配置是我们在安装好操作系统之后,需要解决的第一步。现时代没有接入网络的主机已然等同于一堆废铁。在网络配置的过程中,通常我们需要配置本机IP地址,缺省网关,D...

38000
来自专栏nice_每一天

理解 IntelliJ IDEA 的项目配置和Web部署

IDEA 中最重要的各种设置项,就是这个 Project Structre 了,关乎你的项目运行,缺胳膊少腿都不行。最近公司正好也是用之前自己比较熟悉的IDEA...

61020
来自专栏IMWeb前端团队

Nodejs进阶:核心模块net入门与实例讲解

模块概览 net模块是同样是nodejs的核心模块。在http模块概览里提到,http.Server继承了net.Server,此外,http客户端与http服...

32360
来自专栏Vamei实验室

Java网络01 Tomcat初次尝试

Tomcat是一套开源软件,它由Apache Software Foundation(ASF)开发,用于实现Java Servlet和JavaServer Pa...

21290
来自专栏Java开发

INTELLIJ IDEA插件安装(阿里的编码约束)

在项目中,有的小伙伴第一次使用IDEA进行开发,想装开发插件(编码约束,lombk等)不知如何下手,下面小编就以安装Alibaba Java Coding Gu...

17620

扫码关注云+社区

领取腾讯云代金券