`
liyonghui160com
  • 浏览: 775541 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

注解驱动的Spring结合使用注解版的DWR

阅读更多

 

 

 1. 先写一个Controller

 

    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的配置

 

    <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

 

    <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-autowire="byName">  

      

        <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

 

 

在spring配置文件最后加上

 

    

<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">  
         <property name="order" value="3" />   
          <property value="true" name="alwaysUseFullPath"></property>  
          <property name="mappings">  
            <props>  
              <prop key="/dwr/**">dwrController</prop>  
            </props>  
         </property>  
        </bean>   

 

 

 

 

分享到:
评论

相关推荐

    Dwr3+Spring3 全注解 annotation 方式

    2. **配置Spring**:在Spring的配置文件中,我们需要启用注解驱动的配置,并为DWR的初始化bean提供定义。例如,使用`&lt;context:component-scan&gt;`标签扫描带有DWR注解的类。 3. **配置DWR**:在`dwr.xml`配置文件中,...

    Spring2.5+DWR3.0整合实现autocomplete

    标题中的“Spring2.5+DWR3.0整合实现autocomplete”是指在Web开发中,使用Spring 2.5框架与Direct Web Remoting (DWR) 3.0库结合,来实现一个自动补全(autocomplete)功能。这个功能常见于搜索引擎、表单输入等场景...

    dwr相关jar包

    5. **事件驱动编程**:DWR使用事件驱动的编程模型,使得前端可以订阅服务器端的事件,当服务器状态发生变化时,前端会收到通知,实现双向通信。 6. **版本控制**:DWR3.0是DWR的一个重要版本,引入了许多新特性和...

    Spring in Action(第二版 中文高清版).part2

    5.7.3 注解驱动的缓存 5.8 小结 第6章 事务管理 6.1 理解事务 6.1.1 仅用4个词解释事务 6.1.2 理解Spring对事务管理的支持 6.2 选择事务管理器 6.2.1 JDBC事务 6.2.2 Hibernate事务 6.2.3 JPA事务 6.2.4...

    Spring in Action(第2版)中文版

    5.7.3注解驱动的缓存 5.8小结 第6章事务管理 6.1理解事务 6.1.1仅用4个词解释事务 6.1.2理解spring对事务管理的支持 6.2选择事务管理器 6.2.1jdbc事务 6.2.2hibernate事务 6.2.3jpa事务 6.2.4jdo事务 ...

    Spring攻略(第二版 中文高清版).part1

    13.8 使用Spring的常用测试注解 540 13.8.1 问题 540 13.8.2 解决方案 540 13.8.3 工作原理 541 13.9 小结 542 第14章 Spring Portlet MVC框架 544 14.1 用Spring Portlet MVC开发一个简单的Portlet ...

    Spring in Action(第二版 中文高清版).part1

    5.7.3 注解驱动的缓存 5.8 小结 第6章 事务管理 6.1 理解事务 6.1.1 仅用4个词解释事务 6.1.2 理解Spring对事务管理的支持 6.2 选择事务管理器 6.2.1 JDBC事务 6.2.2 Hibernate事务 6.2.3 JPA事务 6.2.4...

    Displaytag dwr 分页

    Displaytag、DWR、Spring 和 Hibernate 是 Java Web 开发中常用的技术栈,它们在构建高效、动态和数据驱动的Web应用程序方面发挥着重要作用。这里我们将深入探讨这些技术以及它们如何协同工作。 首先,Displaytag ...

    Spring攻略(第二版 中文高清版).part2

    13.8 使用Spring的常用测试注解 540 13.8.1 问题 540 13.8.2 解决方案 540 13.8.3 工作原理 541 13.9 小结 542 第14章 Spring Portlet MVC框架 544 14.1 用Spring Portlet MVC开发一个简单的Portlet ...

    springMVC整合DWR3.0 实例

    -- 开启注解驱动 --&gt; &lt;!-- 静态资源映射 --&gt; **" location="/WEB-INF/resources/"/&gt; &lt;!-- 配置InternalResourceViewResolver --&gt; &lt;bean class="org.springframework.web.servlet.view....

    Spring_Security3中文指南.pdf

    Spring Security 提供了多种配置方式,包括 XML 配置、Java 配置以及注解驱动的配置方式。其中,XML 配置和 Java 配置提供了更多的灵活性和控制能力,而注解驱动则更加简洁易用。 #### 六、示例程序与实践建议 ...

Global site tag (gtag.js) - Google Analytics