控制器是用来对事件进行处理的,在springMVC中controller控制器接收DispatcherServlet分发的action进行事务处理。不用再在配置文件中进行配置,而且通过@RequestMapping可以对应多个url映射,而非一个。
springMVC控制器的本质:在springMVC中控制器只是在方法上注解了@RequestMapping的类,这个注解声明了它们所要处理的请求。
最重要的两个注解:
@Controller
注解在类声明上一行,表示该类是Controller类,
@RequestMapping
可以标记在类上或者方法上,作用是为每一个动作对应相应的处理方法,让spring知道用哪一种方法处理相应动作。不错的RequestMapping讲解
标记在方法上时:
写法为@RequestMapping(value="/...")
@RequestMapping除了有value属性外还有其他属性,比如method表示该注解的方法仅处理哪些Http方法,还有consumes, produces, params, headers等属性,在上面的链接中有讲解,不再赘述。
一些小细节:
@RequestMapping(value="/...")可以简写为@RequestMapping("/..."); 属行中包含多个元素时用{}将其包起来,单个元素不用,如@RequestMapping(value="/...",method= RequestMethod.Post)和
@RequestMapping(value="/...",method={RequestMethod.Post,RequestMethod.Put})
标记在类上时:
表示所有方法都将映射为相对于类级别的请求,比如上面链接中的举例:
配置事项:在使用注解进行方便的编写时,要在SpringMVC的配置文件中声明spring-context,具体语句:在<beans>里添加
xmls:context=http://www.springframework.org/schema/context
然后添加<component-scan/>元素。
例如:
<context:component-scan base-package=”com.sean.controller”/>
此处的package是各controller所在的包,spring在扫描时通过扫描该包内容来找到@Controller等注解,所以base-package中的内容要囊括所有controller并且限定范围注意不要让扫描范围太大。
SpringMVC的配置文件:该配置文件是程序员用来和spring进行交流的配置文件,命名规则一般为servlet名字-servlet.xml,