Spring+Dwr整合

  • Dwr介绍

DWR(Direct Web Remoting)是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架,可以帮助开发人员开发包含AJAX技术的网站.它可以允许在浏览器里的代码使用运行在WEB服务器上的JAVA函数,就像它就在浏览器里一样。

  • Jar包

如果是maven工程加入以下依赖:

<!-- dwr -->

      <dependency>

         <groupId>org.directwebremoting</groupId>

         <artifactId>dwr</artifactId>

         <version>3.0.M1</version>

      </dependency>

如果不是maven工程则需要加入; dwr-3.0.M1.jar

  • Dwr servlet

在web.xml中加入:

<servlet>  

  <servlet-name>dwr-invoker</servlet-name>  

  <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>  

  <!-- 是否允许调试,如果要在浏览器中调试则必须设置为true -->

  <init-param>  

   <param-name>debug</param-name>  

   <param-value>true</param-value>  

  </init-param>  

  <!-- 如果允许跨域请求,则必须将此值设置为false,默认值为true -->

   <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>dwr-invoker</servlet-name>  

  <url-pattern>/dwr/*</url-pattern>  

 </servlet-mapping>  
  • dwr.xml

在WEB-INF下配置dwr.xml文件:

<?xml version="1.0" encoding="UTF-8"?>

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

<dwr>

  <allow>

    <create creator="spring" javascript="dwrService">

      <param name="beanName" value="dwrService" />

    </create>

  </allow>

</dwr>
  • Creator:

creator属性的值可以是new,struts,spring......因为此处是整合spring来做的,所以设置成“spring”

如果creator为new则param为:

<param name=”class” value=”类路径名”/>

javascript="dwrService"

规定网页访问js地址:

<script type='text/javascript' src='工程路径/dwr/interface/ dwrService.js'></script>

前这的/dwr/就是指定走dwr 的servlet

指向spring的bean

<param name="beanName" value="dwrService" />

dwrService即在spring中定义的bean

例如:

dwrService中定义了以下方法:

public String testdwr() throws Exception{

      return "helloworld";

}
  • 使用dwr

网页中加入dwr的js引用。

​
<script type='text/javascript' src='工程路径/dwr/engine.js'></script>   
 
<script type='text/javascript' src='工程路径/dwr/util.js'></script>  

<script type='text/javascript' src='工程路径/dwr/interface/dwrService.js'></script> 

​

上边两行红色为固定写法,使用dwr必须引用engine.js和util.js

第三行为编写的dwr方法,其中“工程路径/dwr/interface/”是固定的,后边的dwrService.js是dwr.xml中定义的javascript="dwrService"。

调用dwr方法:

dwrService.testdwr({

           callback:function(data) {

             alert(data);

           }});

dwrServicedwr.xml中定义的javascript="dwrService",testdwrspring bean中定义的方法。Callback为回调函数。

一个传参数的例子:

Bean的方法:

public String testdwrparam(String name) throws Exception{

      return "helloworld "+name;

   }

页面调用:

dwrService. testdwrparam (‘张三’,{

           callback:function(data) {

             alert(data);

           }});

实验结果发现,dwr 不支持重载函数/方法,有兴趣的试验下。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小哭包

创作不易,给作者加个鸡腿吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值