來自:http://cuisuqiang.iteye.com/blog/2043697
在SpringMVC中,對於Controller的配置方式有很多種,如下做簡單總結
第一種 URL對應Bean
如果要使用此類配置方式,需要在XML中做如下樣式配置
- class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
- "/hello.do" class="test.HelloController">
以上配置,訪問/hello.do就會尋找ID爲/hello.do的Bean,此類方式僅適用小型的應用系統
第二種 爲URL分配Bean
使用一個統一配置集合,對各個URL對應的Controller做關係映射
- class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
- "mappings">
- "/hello.do">helloController
- "helloController" class="test.HelloController">
此類配置還可以使用通配符,訪問/hello.do時,Spring會把請求分配給helloController進行處理
第三種 URL匹配Bean
如果定義的Controller名稱規範,也可以使用如下配置
- class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping">
- "helloController" class="test.HelloController">
第四種 註解
首先在配置文件中開啓註解
- package="test" />
- class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/>
在編寫類上使用註解@org.springframework.stereotype.Controller標記這是個Controller對象
使用@RequestMapping("/hello.do")指定方法對應處理的路徑,這裏只是簡單示例,會有更復雜配置
代碼類如下:
- 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";
- }
- }