读书人

Spring调整DWR(另外一种方法去掉dwr.

发布时间: 2012-09-20 09:36:50 作者: rapoo

Spring整合DWR(另外一种方法去掉dwr.xml )

一共两种方法。第一种是上一篇文章,第二种是这里的方法。

http://www.docin.com/p-58215636.html

这个是豆丁网的一个文章特别的好。

下面介绍Spring整合DWR的步骤:

????? 步骤一:

???????? 下载Spring2.x(http://www.springframework.org)以及DWR2.0(http://getahead.org/dwr),然后将jar包导入到现有的工程下(/WEB-INF/lib/)。(因为DWR2.0中包含DwrSpringServlet类)

????? 步骤二:

?????????修改web.xml文件:

????????

?

<!--?DWR?servlet?配置?-->??

<servlet>??

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

????<servlet-class>??

????????org.directwebremoting.spring.DwrSpringServlet ??

????</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>??

??

<!--?设置Spring监听器?-->??

<listener>??

????<listener-class>??

???????org.springframework.web.context.ContextLoaderListener ??

????</listener-class>??

</listener>??

这样配置可能会存在问题(主要取决与你IDE环境设置),因为侦听器会在/WEB-INF/下寻找applicationContext.xml文件,所以需要一点点小小的改动:

假设我的applicationContext.xml文件放在/src/com/下面,我们需要在web.xml文件中添加下面的语句进行说明。

<context-param>
??????? <param-name>contextConfigLocation</param-name>
??????? <param-value>classpath:/com/applicationContext.xml</param-value>
</context-param>

说明:
org.directwebremoting.spring.DwrSpringServlet这个类是dwr专门为整合spring提供的一个servlet,加入这个之后,dwr的配置就可以写入到spring的配置文件applicationContext.xml中,省掉了dwr.xml

这样就ok了。我们继续。

步骤三:

编写java类(用于通过AJAX实现的功能)。例如:验证码的实现(我的Blog验证码java实现的日志中有相关代码,请参考)。

步骤四:

配置applicationContext.xml文件

因为我门要在Spring配置文件中使用DWR的标签,所以要引入DWR标签的定义。

<beans??

????xmlns="http://www.springframework.org/schema/beans"??

????xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"??

????xmlns:dwr="http://www.directwebremoting.org/schema/spring-dwr"??

????xsi:schemaLocation="http://www.springframework.org/schema/beans?http://www.springframework.org/schema/beans/spring-beans-2.0.xsd ??

?????http://www.directwebremoting.org/schema/spring-dwr?http://www.directwebremoting.org/schema/spring-dwr-2.0.xsd">?

<!--?DWR?配置开始?-->??

????<dwr:configuration></dwr:configuration><!--?必须要configuration?-->??

????<dwr:controller?id="dwrController"?debug="true"?/>??

????<!--?DWR?配置结束?-->??

?????? ??

?????<!--?spring?bean配置?-->??

?????<bean?id="userService"?class="test.bcndyl.service.impl.UserServiceImpl">??

?????</bean>??

????? ??

?????<bean?id="myCode"?class="dwr.MyCode">??

????????<!--?定义调用的js文件?-->??

????????<dwr:remote?javascript="myCode"></dwr:remote>??

????</bean>??

????<!--?end?spring?bean配置?-->??

</beans>

在这里本人遇到过这样的问题:

如果这样写:

xsi:schemaLocation="http://www.springframework.org/schema/beans?http://www.springframework.org/schema/beans/spring-beans-2.0.xsd ??

?????http://www.directwebremoting.org/schema/spring-dwr?http://www.directwebremoting.org/schema/spring-dwr-2.0.xsd"

在<dwr:configuration></dwr:configuration>和<dwr:remote?javascript="myCode"></dwr:remote>?处会有错误的提示。将

xsi:schemaLocation="http://www.springframework.org/schema/beans?http://www.springframework.org/schema/beans/spring-beans-2.0.xsd??改为

xsi:schemaLocation="http://www.springframework.org/schema/beans?http://www.springframework.org/schema/beans/spring-beans.xsd,错误就消失了??。

步骤五:

在需要AJAX的JSP页面中添加AJAX相关:

dwr/engine.js、dwr/util.js、dwr/interface/myCode.js

接下来的编码工作不用我说了!

DWR大大简化了AJAX的编码,很实用的东西啊!

读书人网 >XML SOAP

热点推荐