• DWR+Spring配置使用


    一、DWR介绍

      DWR(Direct Web Remoting)是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架,利用这个框架可以让AJAX开发变得很简单.利用DWR可以在客户端利用JavaScript直接调用服务端的Java方法并返回值给JavaScript,就好像浏览器调用一样(DWR根据Java类来动态生成JavaScrip代码). DWR支持Spring(JavaScript远程调用spring bean)还支持一个可选的commons-logging日记操作.

    二、DWR使用(加示例)

      1,添加dwr.jar包到服务器WEB-INF/lib下,另外该目录下也应有commons-logging.jar包

      2,在web.xml下添加以下配置:

    <servlet>
      <display-name>DWR Servlet</display-name>
      <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>
    </servlet>
    
    <servlet-mapping>
      <servlet-name>dwr-invoker</servlet-name>
      <url-pattern>/dwr/*</url-pattern>
    </servlet-mapping>

      3,WEB-INF目录下创建添加dwr.xml配置文件:

    <!DOCTYPE dwr PUBLIC
        "-//GetAhead Limited//DTD Direct Web Remoting 3.0//EN"
        "http://getahead.org/dwr/dwr30.dtd">
    
    <dwr>
      <allow>
        <create creator="new" javascript="JDate">
          <param name="class" value="java.util.Date"/>
        </create>
        <create creator="new" javascript="Demo">
        <!--value值为要使用的java类 --> <param name="class" value="org.getahead.dwrdemo.simpletext.Demo"/> </create>
      <!-- 使用spring bean -->
      <create creator="spring" javascript="DWRUser">
          <param name="beanName" value="DWRUser" />
       </create> </allow> </dwr>

      从以上配置可看出,<create>有两种配置方式,一种直接使用java类,另一种与spring结合,使用spring bean。

      4,在页面中添加:

    <script src='/[YOUR-WEBAPP-CONTEXT]/dwr/interface/[YOUR-SCRIPT].js'></script>
    <script src='/[YOUR-WEBAPP-CONTEXT]/dwr/engine.js'></script>
    <scriptsrc='/[YOUR-WEBAPP-CONTEXT]/dwr/util.js'></script>

      这里,/dwr/是一个虚拟的路径,这个文件目录不一定存在。

      5,官方示例:

      html网页(放在web应用根目录下):

    <html>
      <head>
        <script type='text/javascript' src='dwr/interface/Demo.js'></script>
        <script type='text/javascript' src='dwr/engine.js'></script>
        <script type='text/javascript' src='dwr/util.js'></script>
      </head>
      <script type='text/javascript'>
        function update() {
          var name = dwr.util.getValue("demoName");
          Demo.sayHello(name, showData); //回调函数 showData
        }
        function showData(data) {
          dwr.util.setValue("demoReply", data);
        }
      </script>
    <body>
    <
    p> Name: <input type="text" id="demoName"/> <input value="Send" type="button" onclick="update()"/> <br/> Reply: <span id="demoReply"></span> </p>
    </body>
    </html>

      java类Demo,上面的dwr.xml配置为:

    package org.getahead.dwrdemo.simpletext;
    public
    class Demo { public String sayHello(String name) { return "Hello, " + name; } }

    以上是简单示例,更多内容请查看官方文档。

  • 相关阅读:
    python处理yml
    awk命令笔记
    微信小程序wxml的数据传给js 点击事件 js获取view中的内容
    微信小程序js 字符串截取
    微信小程序 wx:if 多条件判断
    微信小程序 --- toast消息提示框
    微信小程序 点击事件获取到的 event.currentTarget.dataset.id 是空的 解决办法
    微信小程序页面跳转传参数
    微信小程序开发框架
    微信小程序获取当前时间
  • 原文地址:https://www.cnblogs.com/jianzhi/p/3394222.html
Copyright © 2020-2023  润新知