Spring和dwr整合

1. Dwr介绍:

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

 

 

2. Jar

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

<!-- dwr -->
		<dependency>
			<groupId>org.directwebremoting</groupId>
			<artifactId>dwr</artifactId>
			<version>3.0.M1</version>
		</dependency>

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

 

3. 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>   

4. 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>
</pre><pre name="code" class="html"><p> Creator:</p><p>creator<span style="font-family:宋体;">属性的值可以是</span><span style="font-family:Calibri;">new,struts,</span>spring......<span style="font-family:宋体;">因为此处是</span><span style="font-family:宋体;">整合</span>spring<span style="font-family:宋体;">来做的,所以设置成</span>“spring”</p><p><span style="font-family:宋体;">如果</span>creator<span style="font-family:宋体;">为</span><span style="font-family:Calibri;">new</span><span style="font-family:宋体;">则</span><span style="font-family:Calibri;">param</span><span style="font-family:宋体;">为:</span></p><p><param name=”class” value=”类路径名”/></p><p> javascript="dwrService"</p><p><span style="font-family:宋体;">规定网页访问</span>js<span style="font-family:宋体;">地址:</span></p><p><script type='text/javascript' src='工程路径<span style="color:rgb(255,0,0);">/</span><span style="color:rgb(255,0,0);">dwr</span><span style="color:rgb(255,0,0);">/</span>interface/ dwrService.js'></script></p><p>前这的/dwr/<span style="font-family:宋体;">就是指定走</span>dwr <span style="font-family:宋体;">的</span><span style="font-family:Calibri;">servlet</span></p><p> </p><p> <span style="font-family:宋体;">指向</span>spring<span style="font-family:宋体;">的</span><span style="font-family:Calibri;">bean</span></p><p><param name="beanName" value="dwrService" /></p><p> </p><p>dwrService<span style="font-family:宋体;">即在</span>spring<span style="font-family:宋体;">中定义的</span><span style="font-family:Calibri;">bean</span></p><p> </p><p> </p><p>例如:</p><p> </p><p>dwrService中定义了以下方法:</p><pre name="code" class="java">public String testdwr() throws Exception{
		return "helloworld";
}


 

5. 使用dwr

 

网页中加入dwrjs引用。

 

<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.jsutil.js

 

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

调用dwr方法:

dwrService.testdwr({
		     callback:function(data) {
		     	alert(data);
		     }});

dwrService为dwr.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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值