`

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

阅读更多
配置整合DWR3.0和Spring2.5使用annotation注解


这里使用 DWR3.rc1, Spring2.5 and Spring MVC



在Spring2.5中,使用了许多annotation, 新版本的DWR也支持annotation了, 下面看一下配置过程



1. 先写一个Controller


Java代码 复制代码

   1. package com.myapp.web.controller;  
   2.  
   3. import javax.servlet.http.HttpServletRequest;  
   4. import org.directwebremoting.annotations.RemoteMethod;  
   5. import org.directwebremoting.annotations.RemoteProxy;  
   6. import org.springframework.stereotype.Controller;  
   7. import org.springframework.web.bind.annotation.RequestMapping;  
   8.  
   9. @Controller 
  10. @RemoteProxy 
  11. public class UserController {  
  12.  
  13.     @RemoteMethod 
  14.     public String getUserName(int id) {  
  15.         System.out.println("user id is " + id);  
  16.         return "UserName: " + id;  
  17.     }  
  18.       
  19.     @RequestMapping("/user/add.do")  
  20.     public String addUser(HttpServletRequest request) {  
  21.         System.out.println("this is action method");  
  22.         return "/user/list.jsp";  
  23.     }  
  24. } 

package com.myapp.web.controller;

import javax.servlet.http.HttpServletRequest;
import org.directwebremoting.annotations.RemoteMethod;
import org.directwebremoting.annotations.RemoteProxy;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RemoteProxy
public class UserController {

        @RemoteMethod
        public String getUserName(int id) {
                System.out.println("user id is " + id);
                return "UserName: " + id;
        }
       
        @RequestMapping("/user/add.do")
        public String addUser(HttpServletRequest request) {
                System.out.println("this is action method");
                return "/user/list.jsp";
        }
}



@RemoteProxy注解告诉DWR,这个Class是我们想暴露出来的。@RemoteMethod注解告诉DWR去暴露这个指定的方法,只有加了RemoteMethod注解的方法会被暴露,其它的不会。

这里也可以使用@RemoteProxy(name="userRemote")的方式指定DWR接口的名字



2. 接下来看web.xml的配置


Xml代码 复制代码

   1. <servlet> 
   2.     <servlet-name>action</servlet-name> 
   3.     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
   4.     <load-on-startup>1</load-on-startup> 
   5.    </servlet> 
   6.  
   7. <context-param> 
   8.     <param-name>contextConfigLocation</param-name> 
   9.     <param-value>/WEB-INF/springconfig/*.xml</param-value> 
  10. </context-param> 
  11.  
  12.    <servlet-mapping> 
  13.     <servlet-name>action</servlet-name> 
  14.     <url-pattern>*.do</url-pattern> 
  15.    </servlet-mapping> 
  16.      
  17. <servlet-mapping> 
  18.     <servlet-name>action</servlet-name> 
  19.     <url-pattern>/dwr/*</url-pattern> 
  20. </servlet-mapping> 
  21.  
  22. <listener> 
  23.     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
  24. </listener> 

       <servlet>
                <servlet-name>action</servlet-name>
                <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
                <load-on-startup>1</load-on-startup>
    </servlet>

        <context-param>
                <param-name>contextConfigLocation</param-name>
                <param-value>/WEB-INF/springconfig/*.xml</param-value>
        </context-param>

    <servlet-mapping>
                <servlet-name>action</servlet-name>
                <url-pattern>*.do</url-pattern>
    </servlet-mapping>
   
        <servlet-mapping>
                <servlet-name>action</servlet-name>
                <url-pattern>/dwr/*</url-pattern>
        </servlet-mapping>
       
        <listener>
                <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
        </listener>



注意,这里没有使用org.directwebremoting.spring.DwrSpringServlet或org.directwebremoting.servlet.DwrServlet,并且请注意这里使用spring的dispatcher servlet来映射/dwr/*请求。



3. 最后看针对DispatcherServlet的配置文件action-servlet.xml


Xml代码 复制代码

   1. <beans xmlns="http://www.springframework.org/schema/beans" 
   2.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
   3.     xmlns:dwr="http://www.directwebremoting.org/schema/spring-dwr" 
   4.     xmlns:context="http://www.springframework.org/schema/context" 
   5.     xsi:schemaLocation="http://www.springframework.org/schema/beans  
   6.         http://www.springframework.org/schema/beans/spring-beans-2.5.xsd  
   7.         http://www.springframework.org/schema/context  
   8.         http://www.springframework.org/schema/context/spring-context-2.5.xsd   
   9.         http://www.directwebremoting.org/schema/spring-dwr    
  10.         http://www.directwebremoting.org/schema/spring-dwr-3.0.xsd"  
  11.         default-autowire="byName"> 
  12.  
  13.     <context:annotation-config /> 
  14.       
  15.     <!-- 注意这里新增加的dwr tag, 为使其生效,文件头中要声明namespace --> 
  16.     <dwr:configuration /> 
  17.     <dwr:annotation-config /> 
  18.     <dwr:url-mapping /> 
  19.       
  20.     <!-- 部署项目时, 请把debug设为false --> 
  21.     <dwr:controller id="dwrController" debug="true" /> 
  22.       
  23.     <!-- 多个包名用逗号隔开, 但不能有空格 --> 
  24.     <context:component-scan base-package="com.myapp.web.controller" /> 
  25.       
  26.     <!-- order值越小, 优先级越高 --> 
  27.     <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"> 
  28.         <property name="order" value="1" /> 
  29.     </bean> 
  30.     <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"> 
  31.         <property name="order" value="2" /> 
  32.     </bean> 
  33.       
  34.  </beans> 

<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"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context-2.5.xsd
        http://www.directwebremoting.org/schema/spring-dwr 
        http://www.directwebremoting.org/schema/spring-dwr-3.0.xsd"
        default->

        <context:annotation-config />
       
        <!-- 注意这里新增加的dwr tag, 为使其生效,文件头中要声明namespace -->
        <dwr:configuration />
        <dwr:annotation-config />
        <dwr:url-mapping />
       
        <!-- 部署项目时, 请把debug设为false -->
        <dwr:controller id="dwrController" debug="true" />
       
        <!-- 多个包名用逗号隔开, 但不能有空格 -->
        <context:component-scan base-package="com.myapp.web.controller" />
       
        <!-- order值越小, 优先级越高 -->
        <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
                <property name="order" value="1" />
        </bean>
        <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping">
                <property name="order" value="2" />
        </bean>
   
</beans>



简单解释一下这些配置

    * <dwr:annotation-config /> 要求DWR在Spring容器中检查拥有@RemoteProxy 和 @RemoteMethod注解的类。注意它不会去检查Spring容器之外的类。
    * <dwr:url-mapping /> 要求DWR将util.js和engine.js映射到dwrController
    * <dwr:controller id="dwrController" debug="true" /> 定义dwrController
    * <dwr:configuration /> 此标签在这个例子中不是必须的,如果你想配置Spring容器之外的类,就需要它了。

最后一件事,DWR的测试页面 http://localhost:8080/myapp/dwr 在这里不好用。

请使用 http://localhost:8080/myapp/dwr/test/YOUR-BEAN-NAME 的方式来测试你的DWR接口,

例如这里使用 http://localhost:8080/myapp/dwr/test/UserController



OK 运行测试一下吧
分享到:
评论

相关推荐

    springMVC整合DWR3.0 实例

    本文将详细介绍如何将SpringMVC与DWR3.0进行整合,并提供一个实际的例子来帮助读者更好地理解和掌握这一整合过程。通过阅读本文,您将能够学会如何在自己的项目中实现这一集成,从而提升项目的性能和可维护性。 ###...

    Dwr3+Spring3 全注解 annotation 方式

    3. **配置DWR**:在`dwr.xml`配置文件中,可以使用`&lt;create&gt;`标签手动配置可远程访问的Java类,但在全注解方式下,这部分配置可以省略,因为Spring会自动处理。 4. **注解Java类**:在需要暴露给DWR的Java类上使用`...

    spring2.5 ibatis2.3 struts2.1 dwr3 annotation集成配置

    本主题聚焦于一个经典的Java企业级应用架构:Spring 2.5、iBatis 2.3、Struts 2.1 和 DWR 3 的整合,以及使用注解(Annotation)进行配置。这四个组件的结合可以构建出一个功能强大、可扩展性好、易于维护的Web应用...

    spring使用annotation整合dwr笔记

    - **配置DWR Annotation Config**:利用`&lt;dwr:annotation-config/&gt;`标签启用注解支持,使得开发者能够使用`@RemoteProxy`和`@RemoteMethod`等注解来标注需要暴露给客户端的方法。 ```xml &lt;!-- 配置DWR注解支持 --&gt;...

    Spring+DWR 全注解版

    在Demo_Spring_Dwr_Annotation这个文件名中,我们可以推断出这可能是一个包含演示Spring和DWR集成的项目,而且使用了全注解的方式来配置。以下是一些可能包含的知识点: 1. **Spring框架**: Spring是Java企业级应用...

    spring整合dwr

    同时,使用`&lt;dwr:annotation-scan&gt;`来扫描带有DWR注解的类,以便自动配置: ```xml &lt;dwr:annotation-scan scanRemoteProxy="true" base-package="com.masadora.service" /&gt; ``` 最后,配置DWR控制器(`&lt;dwr:...

    Spring+Dwr整合的项目(源码)

    本项目是Spring与DWR的整合实例,涵盖了三种整合方式,其中最彻底的方式是通过注解(Annotation)来实现,无需手动配置DWRSERVLET和dwr.xml文件,这使得配置更为简洁,同时也更符合现代开发的实践。 1. **Spring与...

    ssh整合----annotation

    在这里,我们使用注解方式配置Spring,因此需要引入Spring的注解支持库。 **3. 构建Hibernate** 对于Hibernate部分,我们需要配置数据库连接,使用DB Browser创建数据库连接,并引入Hibernate的jar包。通过...

    dwr快速入门+实例

    6. **使用annotation代替dwr.xml配置**:除了XML配置外,还可以使用注解来简化配置过程,使代码更简洁。 7. **engine.js和util.js说明**:这两个JavaScript文件是DWR客户端库的核心部分,负责处理与服务器端的通信...

    ajax框架:dwr》实战(包括整合).pdf

    - **使用 ANNOTATION 代替 DWR.XML 配置**:介绍了如何利用注解来简化配置过程,提高开发效率。 - **ENGINE.JS 和 UTIL.JS**:这两个文件是 DWR 的核心组成部分,分别负责处理客户端与服务器之间的通信以及提供一些...

    ajax框架:dwr》实战(包括整合)

    - **使用 ANNOTATION 代替 DWR.XML 配置**:介绍如何使用注解来替代 XML 配置文件,以简化配置过程。 #### 四、DWR+SPRING+HIBERNATE 整合实战 **1. DWR+SPRING+HIBERNATE 结构说明** - **DWR**:处理前端 AJAX ...

    s2sh+dwr+extjs基于annoation三个项目实战

    在本项目实战中,我们将深入探讨如何利用"Spring 2.5 + Struts 2 + Hibernate (S2SH)"框架,结合Direct Web Remoting (DWR) 和ExtJS技术,来构建一个基于注解(Annotation)的高效Web应用程序。这个实战涵盖了三个...

    dwr框架详细介绍 讲解浅显易懂

    在DWR 2.0版本中,引入了JDK5的注解(Annotation)功能,这大大简化了原本需要在dwr.xml配置文件中的设置。通过注解,我们可以更直观地在Java类和方法上声明哪些需要暴露给客户端。以下是DWR配置和注解的详细讲解: ...

    《ajax框架:dwr与ext》实战

    6. **使用ANNOTATION代替DWR.XML配置**: - 探讨如何使用注解来替代XML配置。 - 注解的优势及其应用场景。 7. **ENGINE.JS说明**: - ENGINE.JS是DWR的核心JavaScript库之一。 - 解释其主要职责和内部工作原理...

    ajax框架:dwr与ext实践_.pdf

    使用ANNOTATION代替DWR.XML配置** - **注解使用**:介绍如何使用注解来替代传统的XML配置方式。 - **优点分析**:分析使用注解配置的优势,比如更简洁、更易于维护等。 **7. ENGINE.JS说明** - **引擎文件**:...

    Spring MVC tutorial

    3. **MVC配置**:使用`&lt;mvc:annotation-driven&gt;`元素启用注解驱动,让Spring自动扫描@Controller注解的类。 4. **视图解析器**:配置ViewResolver,例如`InternalResourceViewResolver`,指定前缀和后缀。 5. **...

    流程管理系统,rbac,dwr

    利用Spring的AOP来做声明式事务,利用Spring的Annotation方式基本达到了零配置,持久层全部使用Hibernate Annotation方式,主要采用的是标准的JPA注解,这样减少了大量的Hibernate映射文件,提高了可维护性,Java与...

    javaSSH框架搭建配置

    - `&lt;context-param&gt;`定义了Spring配置文件的位置,这里使用通配符`*`来匹配多个配置文件。 **2. 字符编码过滤器** 为了确保Web应用中数据的一致性和正确性,还需要配置字符编码过滤器。 ```xml &lt;!--Spring字符...

Global site tag (gtag.js) - Google Analytics