配置整合DWR3.0和Spring2.5使用annotation注解
这里使用 DWR3.rc1, Spring2.5 and Spring MVC
在Spring2.5中,使用了许多annotation, 新版本的DWR也支持annotation了, 下面看一下配置过程
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";
- }
- }
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>
<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>
<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
OK 运行测试一下吧
配置整合DWR3.0和Spring2.5使用annotation注解相关推荐
- SpringBoot整合DWR-3.0.2-RELEASE版本,以及解决项目在开发环境及其外置Tomcat运行正常,独立JAR形式内置Tomcat运行异常的问题
SpringBoot整合DWR 3.0.2-RELEASE填坑日记 填坑背景 问题溯源 填坑步骤 一.示例代码结构 二.示例代码说明 1.框架配置代码编写 2.后端服务代码编写 3.后端服务注册配置 ...
- SpringMvc之整合DWR3.0.0推送消息
下载地址 http://www.directwebremoting.org/dwr/ https://github.com/directwebremoting/dwr/releases 本文以DWR3 ...
- Maven整合Spring3.0+Mybatis3.2+Struts2.3+查找坐标+jar包依赖(五)
依赖传递 只添加了一个struts2-core依赖,发现项目中出现了很多jar,这种情况 叫 依赖传递 查找坐标 依赖版本冲突的解决 1. 第一声明优先原则 <dependencies> ...
- 实战干货!Spring Cloud Gateway 整合 OAuth2.0 实现分布式统一认证授权!
今天这篇文章介绍一下Spring Cloud Gateway整合OAuth2.0实现认证授权,涉及到的知识点有点多,有不清楚的可以看下陈某的往期文章. 文章目录如下: 微服务认证方案 微服务认证方案目 ...
- SpringBoot实战教程(1)| 整合Swagger3.0.0
本文教你如何在SpringBoot中整合Swagger,快速实现在线接口文档. Swagger版本:3.0.0 SpringBoot版本:2.5.6 目录 一.初始化SpringBoot项目 二.引入 ...
- Springboot2.0从零开始搭建脚手架-初始化和整合MybatisPlus3.0+...
初始化springboot项目 添加web依赖,基于springboot2.1.3稳定版本 初始化spring boot项目地址 https://start.spring.io/ 包名:com.nqm ...
- SUSE Linux 11里Nginx+Resin+JSP+Memcached+MySQL安装配置整合
服务器运维与网站架构|Linux运维|X研究 let's face reality,loyalty to an ideal! 首页 Linux Nginx Security Shell 服务器架构 互 ...
- Spring Boot-2.3.7.RELEASE整合activiti-6.0示例步骤
涉及简单审批时一般都是有人发起,再由另外一人确认审核即可! 实际项目中有时涉及利益的时候,比如常见的请假,报销等,就不是那么简单一人审核了事! 其中有权力和责任的体现,同时执行过程中也涉及业务流程管理 ...
- mysql4.0.13下载_Windows2000下整合Mysql4.0.13与Tomcat
原由:在资料浩瀚的互联网中,却找不到一份最新的mysql4.0.13与Tomcat4.1.24的整合配置文档.在自己工作之余,总结了自己搭建jsP环境的实际经验并参照以前版本Mysql.Tomcat相 ...
最新文章
- 鱼和熊掌兼得:同时使用 JPA 和 Mybatis
- 随机森林RF中的两个随机 抽样随机 特征选取随机 文章解释的好的
- 1.6-1.7配置IP1.8网络问题排查
- Java中的阻塞队列-LinkedBlockingQueue(二)
- ldap和kerberos整合大数据账号
- 3dmax如何显示参考图_3dmax怎么在视图中放入参照
- 勒索软件的激荡三十年
- 原来我也可以写Android小游戏
- WarDrive:使用Backtrack 4中的Kismet进行嗅探并使用GE绘制地图的简明攻略
- MongoVUE的基本使用
- geoserver样式(SLD方式)—— 图层元素在不同比例尺显示不同样式
- 通过uc_client接口方式,更新discuz会员头像
- synology nfs_如何手动和自动关闭和重新启动Synology NAS
- vmware、操作系统、数据库软件、oracle 补丁集地址下载
- ubuntu 16.04 内存清理方法总结
- 单页应用和多页应用的区别
- 【矩阵论】04——线性空间——子空间
- 计算机应用基础精品课程申报表,计算机应用基础精品课程申报书.doc
- oracle EBS查进程,Linux下使用ps命令来查看Oracle DB以及EBS相关的进程
- 使用系统自带计算器进行二进制运算