来自:http://cuisuqiang.iteye.com/blog/2043697
在SpringMVC中,对于Controller的配置方式有很多种,如下做简单总结
第一种 URL对应Bean
如果要使用此类配置方式,需要在XML中做如下样式配置
Java代码
-
- class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMappin
g"/> - "/hello.do"
class="test.HelloController">
以上配置,访问/hello.do就会寻找ID为/hello.do的Bean,此类方式仅适用小型的应用系统
第二种 为URL分配Bean
使用一个统一配置集合,对各个URL对应的Controller做关系映射
Java代码
-
-
- class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
-
"mappings"> -
-
"/hello.do">helloController -
-
-
- "helloController"
class="test.HelloController">
此类配置还可以使用通配符,访问/hello.do时,Spring会把请求分配给helloController进行处理
第三种 URL匹配Bean
如果定义的Controller名称规范,也可以使用如下配置
Java代码
-
- class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandl
erMapping"> - "helloController"
class="test.HelloController">
第四种 注解
首先在配置文件中开启注解
Java代码
-
- package="test"
/> - class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerA
dapter"/>
在编写类上使用注解@org.springframework.stereotype.Controller标记这是个Controller对象
使用@RequestMapping("/hello.do")指定方法对应处理的路径,这里只是简单示例,会有更复杂配置
代码类如下:
Java代码
- package
test; - import
java.util.Date; - import
javax.servlet.http.HttpServletRequest; - import
javax.servlet.http.HttpServletResponse; - import
org.springframework.web.bind.annotation.RequestMapping; - //
http://localhost:8080/spring/hello.do?user=java - @org.springframework.stereotype.Controller
- public
class HelloController{ -
@SuppressWarnings("deprecation") -
@RequestMapping("/hello.do") -
public String hello(HttpServletRequest request,HttpServletResponse response){ -
request.setAttribute("user", request.getParameter("user") + "-->" + new Date().toLocaleString()); -
return "hello"; -
} - }