配置整合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";
	}
}

 

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

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

 

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

 

	
		action
		org.springframework.web.servlet.DispatcherServlet
		1
    

	
		contextConfigLocation
		/WEB-INF/springconfig/*.xml
	

    
		action
		*.do
    
    
	
		action
		/dwr/*
	
	
	
		org.springframework.web.context.ContextLoaderListener
	

 

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

 

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

 



	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
		
	
	
		
	
    
 

 

简单解释一下这些配置

  • 要求DWR在Spring容器中检查拥有@RemoteProxy 和 @RemoteMethod注解的类。注意它不会去检查Spring容器之外的类。
  • 要求DWR将util.js和engine.js映射到dwrController
  • 定义dwrController
  • 此标签在这个例子中不是必须的,如果你想配置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 运行测试一下吧

 

原文 http://www.codercorp.com/blog/spring/configuring-dwr-30-with-spring-using-annotations.html

你可能感兴趣的:(DWR,Java,Spring,Apache,Servlet)