基于注解的控制器
1. 一个控制器可以处理多个动作
Controller和RequestMapping是Spring MVC API 最重要的两个注释类型 ,org.springframework.stereotype.Controller注解类型用于指示spring的实例是一个控制器,导入包后在类的定义上面加@Controller
Spring使用扫描机制来找到应用程序中所有基于注解的控制器,为了保证Spring能够找到控制器
1)SpringMVC的配置文件中生命spring-context,如下:
<beans .....
xmlns:context=" http://www.springframework.org/schema/context"
.......>
.......
</beans>
2)需要应用<component-scan /> 元素 ,如下所示:
<context : component-scan base-package = "basePackage" />
若所有的控制类都在com.example.controller及其子包下, 则 basePackage 为 com.example.controller。确保所有的控制类都在基本包下,并且包的范围不要太大,以免扫描不是控制器的类
2.为每一个动作开发相应的处理方法,让Spring知道哪一种方法来处理他的动作,要使用org.springframework.web,bind.annotation.RequestMapping注释类型的URI和方法,
1)可以使用 @RequestMapping 注释一种方法或者类,比如在方法定义上面添加@RequestMapping(value="/customer_input")
2)属性 value:value是RequestMapping注释的默认属性,没有其他属性视 value属性名字可以省略,如@RequestMapping("/customer_input"),如果有其他属性的时候,value的属性名不能省略
属性 method:method属性用来指示该方法处理哪些HTTP请 求 ,method=({RequestMethod.POST,RequestMethod.PUT}),只有一个的时候可以不用写花括号,没有指定的method 的时候,则可以处理任意的HTTP方法。
如果RequestMapping用来注释一个控制器类,所有的方法都将映为相对于类级别的请求,若类上有,方法上也有RequestMapping,则查看的网址为http://domain/context/customer/delete ;(customer是类上的value,delete是方法上的value ,确定到某个方法)