- 浏览: 408684 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (268)
- java (22)
- Acegi (8)
- Ajax (17)
- Annotation (3)
- Ant (3)
- JBOSS (6)
- Xdoclet (1)
- CSS (20)
- Data Warehouse (11)
- DB2 (3)
- DOM (1)
- dos (2)
- JMF (1)
- JMS (5)
- J2EE (17)
- Hibernate (7)
- struts (10)
- CORBA (1)
- 职业 (2)
- JSF (1)
- JSTL (8)
- 其它 (1)
- Log4j (7)
- svg (7)
- quartz (3)
- web2.0 (2)
- velocity (2)
- apache commons (1)
- js (9)
- html (4)
- sql (3)
- linux (4)
- dwr (14)
- spring (5)
- GWT (7)
- portlet (4)
- 软件工程 (10)
- actionscript (1)
- 测试 (1)
- tomcat (3)
- flash (0)
- 线程 (1)
- mysql (6)
- flex (1)
- oracle (7)
- crystalreport (4)
- itext (4)
- memcache (2)
- linux 监控 (2)
- mongodb (1)
- Kafka (5)
- 网络 (2)
- 分布式计算 (2)
最新评论
-
chenyongxin:
mark
JBoss 4.0.2集群基本知识及配置方法指南 -
softor:
我找到了,下载吧:http://ishare.iask.sin ...
jad是最简单的class反编译为java文件的小工具 (转载) -
softor:
求下载
dodo@lovehang.com
jad是最简单的class反编译为java文件的小工具 (转载) -
juedui0769:
不错!
请问: 如何在 将 log4j.appender ...
Tomcat 日志 配置 (转载) -
spp_1987:
// 建立一个上传文件的输出流
...
Struts上传多个及N个文件的例子
要读懂我这篇文章估计需要一些前期知识:
你要知道Spring是什么,并且要知道Spring已经出了2.0的版本了。
你要知道DWR是什么,并且要知道DWR也要出2.0的版本了。
呵呵,开个玩笑……。这年头在BlogJava上混的,估计没几个不知道上面这两个项了。
好了,现在言归正传。DWR本身就提供对Spring的支持,可以直接把Spring中的Bean暴露给客户端浏览器的Javascript调用。在dwr.xml中的写法是这样的:
<dwr>
<allow>
<create creator="spring" javascript="AjaxPortalService">
<param name="beanName" value="AjaxPortalService"/>
<include method="changeWondowState"/>
<include method="changeWorkbenchState"/>
<include method="changeWindowOrder"/>
</create>
</allow>
</dwr>
这样写到也没什么,只是把项目分模块以后,虽有的配置都写到一个dwr.xml文件里面维护起来比较麻烦,尤其再遇到版本管理中的代码合并。所以曾经我扩展了DWR,让它可以从多个文件读取配置信息。然后每个模块自己一个配置文件,跟着source一起走。这样做也有问题,就是现在Java应用程序的配置文件太多啦!Spring的配置,WebWork的配置,Hibernate的配置,DWR的配置,再加上一些杂七杂八的xml和properties。看着这些配置文件简直要疯掉了。
正在此时,spring2横空出世,现在你可以把一些配置文件合并到一起了。正好趁此机会体验一下Spring2的自定义schema特性。
目标:
把DWR的配置写成这样:
<?xml version="1.0" encoding="GBK"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:dwr="http://www.devside.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.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
http://www.devside.org/schema/spring/dwr http://www.devside.org/schema/spring/dwr.xsd"
default-autowire="byName">
<bean id="departmentDao" class="cn.com.legendapl.hellostruts2.dao.DepartmentDao"/>
<bean id="employeeDao" class="cn.com.legendapl.hellostruts2.dao.EmployeeDao"/>
<bean id="companyService" class="cn.com.legendapl.hellostruts2.service.CompanyService"/>
<aop:config>
<aop:pointcut id="companyServiceOperation" expression="execution(* cn.com.legendapl.hellostruts2.service.ICompanyService.*(..))">
<aop:advisor advice-ref="txAdvice" pointcut-ref="companyServiceOperation">
</aop:config>
<bean id="ajaxCompanyProxy" class="cn.com.legendapl.hellostruts2.ajax.AjaxCompanyProxy"/>
<dwr:allow id="ajaxCompanyProxyAllow">
<dwr:create beanName="ajaxCompanyProxy" javascript="CompanyProxy">
<dwr:include method="findEmployeeById"/>
</dwr:create>
<dwr:convert converter="bean" match="cn.com.legendapl.hellostruts2.entity.*"/>
</dwr:allow>
</beans>
重点在这里:
<dwr:allow id="ajaxCompanyProxyAllow">
<dwr:create beanName="ajaxCompanyProxy" javascript="CompanyProxy">
<dwr:include method="findEmployeeById"/>
</dwr:create>
<dwr:convert converter="bean" match="cn.com.legendapl.hellostruts2.entity.*"/>
</dwr:allow>
好了现在动手开始做。
原理其实很简单,现在看张图。画的不好,敬请原谅!
从这样图中我们可以看出我们要做如下工作:
1、做一个dwr.xsd,定义spring配置文件中的dwr这部分配置的schema。
要做这个需要有一定xml和xsd的知识,我也是现学现用啦!
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns="http://www.devside.org/schema/spring/dwr"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:beans="http://www.springframework.org/schema/beans"
targetNamespace="http://www.devside.org/schema/spring/dwr"
elementFormDefault="qualified"
attributeFormDefault="unqualified">
<xsd:import namespace="http://www.springframework.org/schema/beans" schemaLocation="http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"/>
<xsd:element name="allow">
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="beans:identifiedType">
<xsd:sequence>
<xsd:element name="create" type="createType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="convert" type="convertType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="createType">
<xsd:sequence>
<xsd:element name="auth" type="authType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="include" type="includeType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="exclude" type="excludeType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="beanName" type="xsd:string" use="required"/>
<xsd:attribute name="javascript" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:complexType name="convertType">
<xsd:attribute name="converter" type="xsd:string" use="required"/>
<xsd:attribute name="match" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:complexType name="authType">
<xsd:attribute name="method" type="xsd:string" use="required"/>
<xsd:attribute name="role" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:complexType name="includeType">
<xsd:attribute name="method" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:complexType name="excludeType">
<xsd:attribute name="method" type="xsd:string" use="required"/>
</xsd:complexType>
</xsd:schema>
2、我们要做一个DWRNamespaceHandler来处理DWR的配置信息,其实里面就做一件事把AllowBeanDefinitionParser 注册给allow节点。因为我们dwr的配置部分根节点就一个标签allow,所以我们就做一个用于解析allow标签的 AllowBeanDefinitionParser解析器就行。如果我们的根节点还有其他的标签,同样也要做相应的解析器。
public class DWRNamespaceHandler extends NamespaceHandlerSupport {
public void init() {
//把AllowBeanDefinitionParser注册到allow节点
registerBeanDefinitionParser("allow", new AllowBeanDefinitionParser());
}
}
其实难点是做AllowBeanDefinitionParser,这里你需要一些DOM模型的知识,来操作配置节点的内容。然后根据内容进行处理。在这里我们,需要做三件事:
[1] 把配置节点的内容转换成对象模型,即AllowBean(其实就是一些POJO罢了)。
[2] 把这个AllowBean注册给Spring的Context,这一步是可选的。因为我们主要是把这个Bean给DWR,当然顺道给Spring一份也没什么问题。
[3] 把这个AllowBean注册到AllowBeanHolder。
3、AllowBeanHolder。
其实这就是个简单的singleton类,整个运行期只有一个实例。它就像一个容器,AllowBeanDefinitionParser往里放,DWR的Configuration再从这里取。
4、扩展DWR的DefaultConfiguration,我们做一个SpringConfiguration。DWR的DefaultConfiguration是负责读取配置信息的。我们在其中加入从AllowBeanHolder读取配置信息的功能即可。
5、扩展DWR的DWRServlet,我们做一个SpringDWRServlet,原来的DWRServlet加载的是DefaultConfiguration,我们的Serlvet加载我们自己的SpringConfiguration即可。
6、万事俱备,只欠东风啦。就是让Spring知道我们干了这些!
在META-INF目录下(如果没有在src目录下创建一个)加入spring.handlers和spring.schemas两个文件。
spring.handlers中的内容:
http\://www.devside.org/schema/spring/dwr=org.devside.core.support.dwr.DWRNamespaceHandler
spring.schemas中的内容:
http\://www.devside.org/schema/spring/dwr.xsd=org/devside/core/support/dwr/dwr.xsd
注意不要写错字哦,我一开始就写错一个字母,结果怎么调试都不能成功,还以为Spring2有问题呢。
ok了,下面我们就可以写一个spring的配置文件来试试喽。
下面提供两个源码包,一个是spring-dwr的源码,一个是hellosturts2,一个struts2+spring2+hibernate3.2的例子,其中有用到spring-dwr的例子。
为了减小容量,我把jar都去掉了,lib目录下提供了一个列表,你可以自己去找相关的jar包。
http://www.blogjava.net/Files/mstar/HelloStruts2.zip
http://www.blogjava.net/Files/mstar/spring-dwr.zip
你要知道Spring是什么,并且要知道Spring已经出了2.0的版本了。
你要知道DWR是什么,并且要知道DWR也要出2.0的版本了。
呵呵,开个玩笑……。这年头在BlogJava上混的,估计没几个不知道上面这两个项了。
好了,现在言归正传。DWR本身就提供对Spring的支持,可以直接把Spring中的Bean暴露给客户端浏览器的Javascript调用。在dwr.xml中的写法是这样的:
<dwr>
<allow>
<create creator="spring" javascript="AjaxPortalService">
<param name="beanName" value="AjaxPortalService"/>
<include method="changeWondowState"/>
<include method="changeWorkbenchState"/>
<include method="changeWindowOrder"/>
</create>
</allow>
</dwr>
这样写到也没什么,只是把项目分模块以后,虽有的配置都写到一个dwr.xml文件里面维护起来比较麻烦,尤其再遇到版本管理中的代码合并。所以曾经我扩展了DWR,让它可以从多个文件读取配置信息。然后每个模块自己一个配置文件,跟着source一起走。这样做也有问题,就是现在Java应用程序的配置文件太多啦!Spring的配置,WebWork的配置,Hibernate的配置,DWR的配置,再加上一些杂七杂八的xml和properties。看着这些配置文件简直要疯掉了。
正在此时,spring2横空出世,现在你可以把一些配置文件合并到一起了。正好趁此机会体验一下Spring2的自定义schema特性。
目标:
把DWR的配置写成这样:
<?xml version="1.0" encoding="GBK"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:dwr="http://www.devside.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.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
http://www.devside.org/schema/spring/dwr http://www.devside.org/schema/spring/dwr.xsd"
default-autowire="byName">
<bean id="departmentDao" class="cn.com.legendapl.hellostruts2.dao.DepartmentDao"/>
<bean id="employeeDao" class="cn.com.legendapl.hellostruts2.dao.EmployeeDao"/>
<bean id="companyService" class="cn.com.legendapl.hellostruts2.service.CompanyService"/>
<aop:config>
<aop:pointcut id="companyServiceOperation" expression="execution(* cn.com.legendapl.hellostruts2.service.ICompanyService.*(..))">
<aop:advisor advice-ref="txAdvice" pointcut-ref="companyServiceOperation">
</aop:config>
<bean id="ajaxCompanyProxy" class="cn.com.legendapl.hellostruts2.ajax.AjaxCompanyProxy"/>
<dwr:allow id="ajaxCompanyProxyAllow">
<dwr:create beanName="ajaxCompanyProxy" javascript="CompanyProxy">
<dwr:include method="findEmployeeById"/>
</dwr:create>
<dwr:convert converter="bean" match="cn.com.legendapl.hellostruts2.entity.*"/>
</dwr:allow>
</beans>
重点在这里:
<dwr:allow id="ajaxCompanyProxyAllow">
<dwr:create beanName="ajaxCompanyProxy" javascript="CompanyProxy">
<dwr:include method="findEmployeeById"/>
</dwr:create>
<dwr:convert converter="bean" match="cn.com.legendapl.hellostruts2.entity.*"/>
</dwr:allow>
好了现在动手开始做。
原理其实很简单,现在看张图。画的不好,敬请原谅!
从这样图中我们可以看出我们要做如下工作:
1、做一个dwr.xsd,定义spring配置文件中的dwr这部分配置的schema。
要做这个需要有一定xml和xsd的知识,我也是现学现用啦!
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns="http://www.devside.org/schema/spring/dwr"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:beans="http://www.springframework.org/schema/beans"
targetNamespace="http://www.devside.org/schema/spring/dwr"
elementFormDefault="qualified"
attributeFormDefault="unqualified">
<xsd:import namespace="http://www.springframework.org/schema/beans" schemaLocation="http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"/>
<xsd:element name="allow">
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="beans:identifiedType">
<xsd:sequence>
<xsd:element name="create" type="createType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="convert" type="convertType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="createType">
<xsd:sequence>
<xsd:element name="auth" type="authType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="include" type="includeType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="exclude" type="excludeType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="beanName" type="xsd:string" use="required"/>
<xsd:attribute name="javascript" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:complexType name="convertType">
<xsd:attribute name="converter" type="xsd:string" use="required"/>
<xsd:attribute name="match" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:complexType name="authType">
<xsd:attribute name="method" type="xsd:string" use="required"/>
<xsd:attribute name="role" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:complexType name="includeType">
<xsd:attribute name="method" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:complexType name="excludeType">
<xsd:attribute name="method" type="xsd:string" use="required"/>
</xsd:complexType>
</xsd:schema>
2、我们要做一个DWRNamespaceHandler来处理DWR的配置信息,其实里面就做一件事把AllowBeanDefinitionParser 注册给allow节点。因为我们dwr的配置部分根节点就一个标签allow,所以我们就做一个用于解析allow标签的 AllowBeanDefinitionParser解析器就行。如果我们的根节点还有其他的标签,同样也要做相应的解析器。
public class DWRNamespaceHandler extends NamespaceHandlerSupport {
public void init() {
//把AllowBeanDefinitionParser注册到allow节点
registerBeanDefinitionParser("allow", new AllowBeanDefinitionParser());
}
}
其实难点是做AllowBeanDefinitionParser,这里你需要一些DOM模型的知识,来操作配置节点的内容。然后根据内容进行处理。在这里我们,需要做三件事:
[1] 把配置节点的内容转换成对象模型,即AllowBean(其实就是一些POJO罢了)。
[2] 把这个AllowBean注册给Spring的Context,这一步是可选的。因为我们主要是把这个Bean给DWR,当然顺道给Spring一份也没什么问题。
[3] 把这个AllowBean注册到AllowBeanHolder。
3、AllowBeanHolder。
其实这就是个简单的singleton类,整个运行期只有一个实例。它就像一个容器,AllowBeanDefinitionParser往里放,DWR的Configuration再从这里取。
4、扩展DWR的DefaultConfiguration,我们做一个SpringConfiguration。DWR的DefaultConfiguration是负责读取配置信息的。我们在其中加入从AllowBeanHolder读取配置信息的功能即可。
5、扩展DWR的DWRServlet,我们做一个SpringDWRServlet,原来的DWRServlet加载的是DefaultConfiguration,我们的Serlvet加载我们自己的SpringConfiguration即可。
6、万事俱备,只欠东风啦。就是让Spring知道我们干了这些!
在META-INF目录下(如果没有在src目录下创建一个)加入spring.handlers和spring.schemas两个文件。
spring.handlers中的内容:
http\://www.devside.org/schema/spring/dwr=org.devside.core.support.dwr.DWRNamespaceHandler
spring.schemas中的内容:
http\://www.devside.org/schema/spring/dwr.xsd=org/devside/core/support/dwr/dwr.xsd
注意不要写错字哦,我一开始就写错一个字母,结果怎么调试都不能成功,还以为Spring2有问题呢。
ok了,下面我们就可以写一个spring的配置文件来试试喽。
下面提供两个源码包,一个是spring-dwr的源码,一个是hellosturts2,一个struts2+spring2+hibernate3.2的例子,其中有用到spring-dwr的例子。
为了减小容量,我把jar都去掉了,lib目录下提供了一个列表,你可以自己去找相关的jar包。
http://www.blogjava.net/Files/mstar/HelloStruts2.zip
http://www.blogjava.net/Files/mstar/spring-dwr.zip
发表评论
-
dwr 常见方法
2008-01-16 17:38 1003$(); 功能:相当于document.getElement ... -
DWR中提供XML的传递方法
2008-01-16 17:28 850自己用dom4j,所以用dom4j做例子; java ser ... -
DWRUtils API 使用方法(转载)
2008-01-16 17:21 752$("precloneNode1suf") ... -
DWREngine API 使用方法 (转载)
2008-01-16 17:21 2475//简易函数; abc(handler){ } DWRE ... -
dwr简介 (转载)
2008-01-16 16:39 1260最近Ajax比较火,全世界 ... -
dwr学习1 (转载)
2008-01-16 16:35 888这段时间较闲,研究了一 ... -
DWR源码学习(一)(转载
2008-01-16 16:10 1413DWR一个外国人实现的很有前途的AJAX框架。 多余的话就不说 ... -
JAVA中DWR开发项目实战经验(转载)
2008-01-16 16:06 1017自己在公司网站开发总用DWR开发的一个简单聊天 本人也是在网站 ... -
DWR 简化 Ajax 的 portlet 间通信(转载)
2008-01-16 16:04 1233许多开发人员都期待着利用 Ajax 技术来提高基于 Web 的 ... -
关于DWR2.0的配置问题(转载)
2008-01-16 16:00 894自从换工作之后就没有研究过DWR了。下载了最新的DWR2.0M ... -
ajax之旅--dwr探密(转载)
2008-01-16 15:58 792ajax是Asynchronous JavaScript an ... -
DWR使用笔记(转载)
2008-01-16 15:56 685DWR是一个框架,简单的说就是能够在javascript直接调 ... -
DWR的学习文档(Hello World,类型转换,Spring,Annotation) (转载)
2008-01-16 15:37 1076DWR是作为远程调用的ajax框架,将服务端的java类,方法 ...
相关推荐
整合Spring和DWR可以使Web应用更加强大且易于维护,通过上述步骤和示例,你应该能理解如何在Spring2中整合DWR并把DWR配置写入Spring的配置文件中。在实际项目中,根据具体需求进行调整和优化,以达到最佳效果。
3. **Spring配置**:在Spring的配置文件(如`applicationContext.xml`)中,需要声明DWR的bean。通常会有一个`dwrEngineFactory` bean,它会读取`dwr.xml`并初始化DWR引擎。 4. **Servlet配置**:在`web.xml`中,你...
dwr配置文件详解 dwr.xml配置文件详解 dwr配置文件是Direct Web Remoting(DWR)的核心组件之一,它负责配置DWR的各种设置和参数。在本文中,我们将详细介绍dwr配置文件的结构和配置方法,并探讨它在实际应用中的...
**DWR配置文件详解** Direct Web Remoting (DWR) 是一种开源的Java库,它允许Web应用程序在客户端JavaScript和服务器端Java之间进行双向通信。DWR的核心配置文件是`dwr.xml`,该文件定义了DWR允许访问的Java对象、...
2. **在Spring配置文件中添加DWR配置**:将原本在dwr.xml中的配置信息迁移到Spring的配置文件中。例如: ```xml <bean id="dwrConfig" class="org.directwebremoting.spring.SpringConfigurator"> <value>...
**DWR(Direct Web Remoting)与Spring框架的集成配置** ...正确配置后,你可以享受到DWR带来的便捷Ajax功能,同时受益于Spring的强大管理能力。在实际项目中,根据具体需求,可能还需要对这些配置进行调整和扩展。
你需要在`src/main/resources/META-INF/spring`目录下创建一个名为`dwr-servlet.xml`的文件,定义DWR的Servlet配置。例如: ```xml <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi=...
在`getUserName`方法上使用`@RemoteMethod`注解,意味着DWR将会把这个方法映射到JavaScript可以直接调用的函数。`addUser`方法是Spring MVC的控制器方法,用于处理HTTP请求并返回视图路径。 接下来,我们需要配置`...
在本篇配置手册中,我们将介绍如何在Spring MVC的环境下配置DWR环境,这包括web.xml的配置、创建dwr.xml文件、添加DWR的jar包、形成推送函数类以及在前台页面引入对应的JavaScript文件。 首先,web.xml的配置是整个...
为了更好地理解DWR和Spring的集成,可以下载 `spring-mvc-showcase-master`,并按照项目结构和配置文件逐步实现一个简单的功能,如通过DWR调用Spring MVC的Controller方法,展示数据到网页上。 7. **优化和注意...
DWR+Struts+spring+hibernate的订货系统,自己添加的dwr功能
1. **配置Spring**:在Spring的配置文件中,我们需要定义DWR的相关bean,如`DWRConfigurer`和`DWRController`。 2. **利用Spring管理DWR的bean**:DWR中的Java对象可以通过Spring的依赖注入来管理,这样可以方便地...
这些配置通常在Spring的XML配置文件中完成,确保DWR能够被Spring容器管理和初始化。 接着,我们需要在服务器端定义一个或多个远程服务接口,这些接口的方法将在JavaScript中被调用。例如,我们可以创建一个`Message...
6. **映射DWR Interface**:在DWR的`dwr.xml`配置文件中,映射刚创建的DWR接口到Spring中的Bean。这样,DWR调用接口时,实际上会通过Spring查找并调用对应的Bean。 7. **JavaScript调用**:在HTML页面中,引入DWR的...
DWR的配置文件灵活性很高,可以根据实际需求进行定制,以满足各种复杂的服务器到客户端的数据交互场景。通过精确配置`dwr.xml`,开发者可以控制哪些对象和方法暴露给前端,以及如何高效地在Java和JavaScript之间进行...
本实例"DWRSpring实例"是一个使用DWR与Spring框架结合的消息发布系统,包含了基础的CRUD(Create、Read、Update、Delete)操作。通过这个例子,我们可以深入理解DWR和Spring如何协同工作,以及它们在实际开发中的...
1. **配置Spring**:首先,我们需要在Spring的配置文件(如`applicationContext.xml`)中声明DWR的相关bean。这些bean包括DWR的`Engine`、`Configuration`和`Servlet`,它们负责处理DWR的初始化和调用。 2. **创建...