在Spring 2中整合DWR 2
来源:互联网 发布:趣题学算法 pdf 编辑:程序博客网 时间:2024/06/06 09:30
前些日子看了一篇关于在Spring 2中整合DWR 2的文章《AJAX, DWR and Spring》。最近,想动手试一下,就下载其源代码回来看看,依葫芦画瓢做了一遍。在运行时,得到XML验证错误。经过一翻折腾,终于把问题解决。
Spring 2基于XML Schema的配置
众所周知,Spring 2通过XML Schema配置方式极大地简化的其配置,而且使得第三方扩展变为可能。配置如下代码所示:
<? xml version="1.0" encoding="UTF-8" ?>
< beans xmlns =http://www.springframework.org/schema/beans
xmlns:xsi =http://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocation ="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd" >
<!-- <bean /> definitions here -->
</ beans >
不知大家有没有想过spring-beans-2.0.xsd位置在那里?其实,大家可以用Eclipse打开Spring的jar包,展开META-INF,并双击打开其中的spring.schemas文件,内容如下:
http/://www.springframework.org/schema/beans/spring-beans- 2.0 .xsd = org/springframework/beans/factory/xml/spring-beans- 2.0 .xsd
http/://www.springframework.org/schema/tool/spring-tool- 2.0 .xsd = org/springframework/beans/factory/xml/spring-tool- 2.0 .xsd
http/://www.springframework.org/schema/util/spring-util- 2.0 .xsd = org/springframework/beans/factory/xml/spring-util- 2.0 .xsd
http/://www.springframework.org/schema/aop/spring-aop- 2.0 .xsd = org/springframework/aop/config/spring-aop- 2.0 .xsd
http/://www.springframework.org/schema/lang/spring-lang- 2.0 .xsd = org/springframework/scripting/config/spring-lang- 2.0 .xsd
http/://www.springframework.org/schema/tx/spring-tx- 2.0 .xsd = org/springframework/transaction/config/spring-tx- 2.0 .xsd
http/://www.springframework.org/schema/jee/spring-jee- 2.0 .xsd = org/springframework/ejb/config/spring-jee- 2.0 .xsd
http/://www.springframework.org/schema/beans/spring-beans.xsd = org/springframework/beans/factory/xml/spring-beans- 2.0 .xsd
http/://www.springframework.org/schema/tool/spring-tool.xsd = org/springframework/beans/factory/xml/spring-tool- 2.0 .xsd
http/://www.springframework.org/schema/util/spring-util.xsd = org/springframework/beans/factory/xml/spring-util- 2.0 .xsd
http/://www.springframework.org/schema/aop/spring-aop.xsd = org/springframework/aop/config/spring-aop- 2.0 .xsd
http/://www.springframework.org/schema/lang/spring-lang.xsd = org/springframework/scripting/config/spring-lang- 2.0 .xsd
http/://www.springframework.org/schema/tx/spring-tx.xsd = org/springframework/transaction/config/spring-tx- 2.0 .xsd
http/://www.springframework.org/schema/jee/spring-jee.xsd = org/springframework/ejb/config/spring-jee- 2.0 .xsd
从以上的文件中,可以看出XML Sechema文件在类包中位置。
DWR 2.0 RC 2中的XML Schema文件
根据上面的描述,我打开DWR的jar包中spring.schemas文件,内容如下:
然后,按照上面的路径打开spring-dwr-2.0.xsd文件,内容如下:
<? xml version="1.0" encoding="UTF-8" standalone="no" ?>
<!-- 省略了版权信息 -->
< xsd:schema xmlns =http://www.directwebremoting.org/schema/spring-dwr
xmlns:xsd =http://www.w3.org/2001/XMLSchema
targetNamespace =http://www.directwebremoting.org/schema/spring-dwr
elementFormDefault ="qualified"
attributeFormDefault ="unqualified" >
<!-- 省略了具体的定义 -->
</ xsd:schema >
文件spring-dwr-2.0.xsd告诉我们,其名称空间应为“http://www.directwebremoting.org/schema/spring-dwr”,所以我们在配置Spring 2时,应使用以上的名称空间,如下面的代码片段所示:
<? xml version="1.0" encoding="UTF-8" ?>
< beans xmlns =http://www.springframework.org/schema/beans
xmlns:dwr =http://www.directwebremoting.org/schema/spring-dwr
xmlns:xsi =http://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocation ="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.directwebremoting.org/schema/spring-dwr http://www.directwebremoting.org/schema/spring-dwr-2.0.xsd" >
< dwr:configuration >
< dwr:convert class ="net.blogjava.max.pws.domain.Album" type ="bean" >
< dwr:exclude method ="photos" />
</ dwr:convert >
< dwr:convert class ="net.blogjava.max.pws.domain.Photo" type ="bean" >
< dwr:exclude method ="original, poster, thumb, full, album" />
</ dwr:convert >
</ dwr:configuration >
< bean id ="ajaxFacade" class ="net.blogjava.max.pws.web.ajax.AjaxFacade" >
< dwr:remote javascript ="AjaxFacade" />
< property name ="personalWebSite" ref ="personalWebSite" />
</ bean >
</ beans >
WEB-INF/web.xml配置
通过上面的配置,我们可以省去dwr.xml配置,不过在web.xml配置dwr的Servlet时,要使用新的Servlet类。配置代码片段如下:
< servlet >
< servlet-name > dwr </ servlet-name >
< servlet-class > org.directwebremoting.spring.DwrSpringServlet </ servlet-class >
< init-param >
< param-name > debug </ param-name >
< param-value > true </ param-value >
</ init-param >
< load-on-startup > 1 </ load-on-startup >
</ servlet >
< servlet-mapping >
< servlet-name > dwr </ servlet-name >
< url-pattern > /dwr/* </ url-pattern >
</ servlet-mapping >
总结
通过在Spring 2整合DWR 2配置,可以集中管理应用程序的配置,从一定程度上解决JavaEE开发中的配置文件泛滥的问题。
文章出处:http://www.blogjava.net/max/archive/2007/01/31/97009.html
- 在Spring 2中整合DWR 2
- Spring+hibernate+DWR整合
- dwr spring整合
- Spring完全整合DWR
- Spring+hibernate+DWR整合
- DWR+SPRING整合
- Spring+hibernate+DWR整合
- DWR和Spring整合
- Spring与DWR整合
- dwr整合spring
- DWR整合Spring
- dwr spring整合
- Ajax------------- spring+dwr整合
- Spring与DWR整合
- Spring与DWR整合
- dwr spring 整合
- DWR+SPRING整合
- dwr spring整合
- 修改mysql字符编码成为UTF8
- (转)RichEdit 的用法
- P2P技术原理
- MFC的消息机制学习
- SVN使用心得
- 在Spring 2中整合DWR 2
- 决定成功的十种积极心态
- Javascript 事件捕获的备忘(setCapture,captureEvents)
- ajax json 实例
- 12个最重要的J2EE最佳实践
- 关于“#ifdef __cplusplus”
- 在struts2中使用拦截器(Interceptor)控制登录和权限
- 可用的DOM方法在不同浏览器中的检测
- CSLA研究笔记: ErrorProvider的使用