`
json20080301
  • 浏览: 166247 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

DWR与SPRING 集成

 
阅读更多


Step 1 - Give DWR access to the Spring context

 
  1. Use Spring MVC
  2. Use the DWRSpringServlet

Use the DwrSpringServlet

web.xml配置:
<listener>
  <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>
    classpath:yourSpringContext.xml
  </param-value>
</context-param>
<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>
</servlet>
<!-- /dwr/* 必须在/*前面 -->
<servlet-mapping>
  <servlet-name>dwr</servlet-name>
  <url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
 
直接使用SPRING MVC + org.directwebremoting.spring.DwrController
<servlet>
  <servlet-name>springDispatcher</servlet-name>
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  <init-param>
    <param-name>contextConfigLocation</param-name>
    <param-value> classpath:yourSpringContext.xml</param-value>
  </init-param>
  <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
  <servlet-name>springDispatcher</servlet-name>
  <url-pattern>*.html</url-pattern>
</servlet-mapping>
<servlet-mapping>
  <servlet-name>springDispatcher</servlet-name>
  <url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
 
org.directwebremoting.spring.DwrController
 <dwr:controller id="dwrController" debug="true">
    <dwr:config-param name="activeReverseAjaxEnabled" value="true"/>
  </dwr:controller 
STEP 2   - Configure DWR's remoting DWR配置文件
  • 使用SPRING 配置文件替换原来的DWR文件的配置方式,这种配置方式和原来的DWR文件配置方式变化较小:
  • The configuration tag

    <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.5.xsd
        http://www.directwebremoting.org/schema/spring-dwr
        http://www.directwebremoting.org/schema/spring-dwr-3.0.xsd">

    The <dwr:configuration/> is used to mimic the behavior of the configuration available indwr.xml. This tag is optional and it may have nested tags (init, creator, signatures,..). These nested tags mimic the behavior of those available in dwr.xml. Example:

     

      <dwr:configuration>
        <dwr:convert type="bean" class="org.uk.ltd.dwr.dev.model.Address" />
      </dwr:configuration>
    

     

    The remote tag

    Inside each bean you want to remote include a <dwr:remote javascript="Fred"> tag. There you can specify the methods that are going to be proxied and those that won't. For example:

    <bean id="timeConvert" class="com.mycompany.ui.util.TimeConvert">
      <dwr:remote javascript="AjaxTimeConvert">
        <dwr:include method="convert" />
      </dwr:remote>
    </bean>
  • Use the DWR/Spring namespace with annotations (Spring 2.5 or greater, DWR 2.x or greater, dwr.xml not required or recommended)
  • 使用注解的方式替换原有的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.5.xsd
        http://www.directwebremoting.org/schema/spring-dwr
        http://www.directwebremoting.org/schema/spring-dwr-3.0.xsd">
    • 以下配置作用是
    • <dwr:annotation-config id="dwrAnnotationConfig" /><!--开启注解扫描配置 -->
    • <dwr:annotation-scan base-package="com.yourpackage.whatever" scanDataTransferObject="true" scanRemoteProxy="false" /> <!--注解扫描范围的配置 -->
    • annotation-scan - Enables DWR to scan the classpath and:
      • Detect beans annotated with @RemoteProxy & @RemoteMethod, and register the Spring beans and DWR Creator proxies for them. Because DWR is registering the beans into the Spring context for you all Spring annotated beans (@Service, @Component, @Controller, etc.) will be ignored to avoid duplicate registration.
      • Detect DWR converters annotated with @DataTransferObject.
      This element has several available attributes:
      • base-package - The base package to initiate scanning from - i.e. com.myApp.*.
      • regex - A regular expression that will be used in the classpath scanner.
      • scanRemoteProxy - Should DWR scan for remote proxies? Defaults to true.
      • scanDataTransferObject - Should DWR scan for converters? Defaults to true.
      • scanGlobalFilter - Defaults to true.

 

A complete working example of a dwr:annotation-scan configuration can be found here.

 

  • annotation-config - Enables DWR to scan the Spring context, detect beans annotated with @RemoteProxy & @RemoteMethod and register the DWR Creator proxies for them.
  • 然后在具体的代码上使用
  • @RemoteProxy - Functional namespace equivalent = dwr:remote
  • @RemoteMethod - Functional namespace equivalent = dwr:include method="methodName"
  • @DataTransferObject - Functional namespace equivalent = dwr:convert
  • 案例代码如下:
  • package org.myframework.dwr;
  • import javax.annotation.Resource;
  • import org.directwebremoting.annotations.RemoteMethod;
  • import org.directwebremoting.annotations.RemoteProxy;
  • import org.springframework.stereotype.Component;
  • //http://127.0.0.1:8010/springdwr/test/SayHello
  • // http://127.0.0.1:8010/dwr/index.html
  • @RemoteProxy(name="SayHello")
  • public class SayHello {
  • @RemoteMethod 
  • public String sayHello(String abc){
  • return "sayHello to " + abc ;
  • }
  • @RemoteMethod 
  • public String sayHelloFromSpringBean(){
  • return "sayHello to " + springBean ;
  • }
  • @Resource(name = "springBean")
  • SpringBean springBean;
  • }
  • Use the Spring Creator (Will work for older versions of Spring and DWR - dwr.xml required. Not the recommended approach.)
  • 第三种传统方式不推荐使用:
  • <allow>
      ...
      <create creator="spring" javascript="Fred">
        <param name="beanName" value="Shiela"/>
      </create>
      ...
    </allow>

另外:直接使用SPRING mvc貌似test的时候必须写清楚调用的具体内容,没有界面展现所有的DWR调用的内容:

  • //http://127.0.0.1:8010/springdwr/test/SayHello dwrController
  • // http://127.0.0.1:8010/dwr/index.html springDwr
分享到:
评论

相关推荐

    dwr与spring集成的方式

    ### dwr与spring集成的方式 #### 一、引言 DWR(Direct Web Remoting)是一种简化Ajax开发的Java框架,允许在客户端直接调用服务器端的Java方法,从而简化了传统的JavaScript编程复杂度。Spring作为一款流行的企业...

    dwr+spring集成配置

    将DWR与Spring集成,可以充分利用Spring的管理能力,简化DWR的配置和增强应用的可维护性。 ### 集成步骤 1. **引入依赖** 在项目的`pom.xml`文件中添加DWR和Spring的依赖。确保版本兼容,通常选择最新稳定版本。 ...

    DWR示例与spring集成

    - **Spring集成示例**:说明如何配置DWR与Spring的集成,以及如何在JavaScript中调用Spring的Bean。 通过理解并实践这些示例,开发者可以更好地掌握DWR的使用,并将其应用于实际的Web应用中,实现高效、便捷的前后...

    dwr和spring集成简单例子

    将DWR与Spring集成,可以方便地实现富客户端应用,提高用户体验。 在这个"Dwr和Spring集成简单例子"中,我们将探讨如何将这两个强大的工具结合在一起,以便在Web应用中创建动态、交互性强的用户界面。 首先,我们...

    dwr与spring数据库环境集成

    通过以上介绍,我们可以看到"Dwr与spring集成,spring jdbc 数据库集成,spring注入例子"是如何将DWR的实时交互能力与Spring的数据库访问和依赖注入功能结合在一起,形成一个高效、易维护的Web应用开发模式。...

    DWR结合spring例子(可用)

    在这个例子中,我们将会探讨如何将DWR与Spring集成,创建一个可运行的示例。首先,我们需要在项目中添加DWR和Spring的相关依赖。这通常通过Maven或Gradle的配置来完成,确保在项目的类路径中包含了DWR的JAR文件以及...

    DWR与SPRING,DWR与STRUTS2的整合

    1. **配置DWR Spring集成**:在Spring配置文件中定义DWR相关的bean,如`DWRConfig`和`SpringContextUtil`,以便让DWR能够访问Spring的bean。 2. **Spring托管的Java类暴露给JavaScript**:通过Spring的`@Service`或...

    ext-dwr-spring集成Demo

    本示例"ext-dwr-spring集成Demo"就是一种将三个重要技术组件——EXT、Direct Web Remoting (DWR) 和Spring框架融合的实践。EXT是一个强大的JavaScript库,用于构建富客户端BS(Browser-Server)架构的应用;DWR则...

    Spring与DWR结合

    3. **DWR与Spring集成**:为了使DWR能访问到Spring管理的Bean,我们需要在DWR的`web.xml`配置文件中添加Spring的`ContextLoaderListener`,以及DWR的`ContextProvider`,以便在DWR初始化时加载Spring上下文。...

    dwr与spring整合

    通过上述步骤,我们可以实现DWR与Spring的无缝集成,使得前端能够便捷地调用后端的业务逻辑,提高应用的交互性和响应速度。同时,Spring的管理功能可以帮助我们更好地组织和维护代码,提升项目的可维护性。

    dwr+spring 注解方式

    下面将详细介绍如何通过注解实现DWR和Spring的集成以及相关知识点: 1. **Spring注解配置**: - `@Configuration`:标记一个类为Spring配置类,可替代传统的XML配置。 - `@ComponentScan`:用于扫描指定包下的...

    配置整合DWR3.0和Spring2.5使用annotation注解

    这里的`DwrSpringServlet`是DWR与Spring集成的Servlet,它会自动扫描Spring配置,寻找带有`@RemoteProxy`注解的类。`debug`参数控制DWR的调试模式,`crossDomainSessionSecurity`参数用于跨域安全性设置。 为了使...

    dwr+spring实例

    本实例"DWRSpring实例"是一个使用DWR与Spring框架结合的消息发布系统,包含了基础的CRUD(Create、Read、Update、Delete)操作。通过这个例子,我们可以深入理解DWR和Spring如何协同工作,以及它们在实际开发中的...

    dwr+spring+hibernate模板.zip

    - 整合DWR与Spring:DWR的配置可以通过Spring的Bean工厂来完成,这样可以利用Spring的依赖注入特性,方便地管理DWR的实例。同时,Spring的AOP可以用来实现DWR方法的安全性和事务管理。 - 整合Hibernate与Spring:...

    Spring与DWR集成

    **Spring与DWR集成** Spring框架是Java领域中极为重要的轻量级应用框架,它提供了丰富的功能,包括依赖注入、AOP(面向切面编程)、事务管理等,用于简化企业级应用开发。Direct Web Remoting (DWR) 是一个开源...

    使用dwr+spring实现消息推送

    将DWR与Spring结合,可以创建出高效且易于维护的消息推送系统。首先,我们需要在Spring配置中声明DWR的相关bean,包括`DWRConfiguration`、`CatalinaReverseAjaxServlet`以及应用中定义的远程服务接口。这些配置通常...

    DWR中文版教程

    #### 二、DWR与Spring集成 **DWR**可以通过多种方式与**Spring**框架集成,从而利用**Spring**提供的依赖注入和管理Bean的功能。以下是一些关键点: 1. **让DWR和Spring一起工作的检查列表**: - 确保**Spring**和...

    dwr+spring

    与**Spring框架**的集成,使得DWR可以更好地融入到企业级的Java应用中,提供了更强大、更灵活的服务。 Spring框架是一个全面的后端开发解决方案,包括依赖注入、面向切面编程、事务管理、数据访问等模块。Spring对...

    dwr2.0 spring 3.0 整合示例

    在这个"DWR 2.0 Spring 3.0 整合示例"中,我们将探讨如何将DWR与Spring框架集成,以实现高效的前后端交互。整合DWR和Spring的主要目标是利用Spring的管理能力来处理DWR的bean,同时利用DWR的动态JavaScript生成能力...

Global site tag (gtag.js) - Google Analytics