# Controller配置總結 ###### tags: `SpringMVC-基礎` ## Controller * 控制器复杂提供访问应用程序的行为,通常通过接口定义或注解定义两种方法实现。 * 控制器负责解析用户的请求并将其转换为一个模型。 * 在Spring MVC中一个控制器类可以包含多个方法 * 在Spring MVC中,对于Controller的配置方式有很多种 ### 实现Controller接口 ```java= //实现该接口的类获得控制器功能 public interface Controller { //处理请求且返回一个模型与视图对象 ModelAndView handleRequest(HttpServletRequest var1, HttpServletResponse var2) throws Exception; } ``` ### Controller的註解 以下的註解都是等效的Controller,僅用於識別區分 ``` @Component 組件 @Service service @Controller controller @Repository dao ``` ## RequestMapping ### @RequestMapping注解用于映射url到控制器类或一个特定的处理程序方法。可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。 ### 为了测试结论更加准确,我们可以加上一个项目名测试 myweb ### 只注解在方法上面 ```java= @Controller public class ControllerTest2 { @RequestMapping("/t1") public String test1(Model model){ //Spring MVC会自动实例化一个Model对象用于向视图中传值 model.addAttribute("msg","ControllerTest2"); return "test"; } } ``` ```java= @Controller @RequestMapping("/c3") public class ControllerTest3 { @RequestMapping("/t1") public String test1(Model model){ model.addAttribute("msg","ControllerTest3"); return "test"; } } ``` 例如給這個類@RequestMapping("/c3"),如果網址只輸入http://localhost:8080/t1 會進入到ControllerTest2中跳轉 ![](https://i.imgur.com/GSG8fK3.png) 因為在ControllerTest3類中,多添加了@RequestMapping("/c3"),等於先多寫/c3才能進入下方方法的@RequestMapping("/t1")中 ![](https://i.imgur.com/SlYLNhs.png)