1. controller映射的几种方式:
- BeanNameUrlHandlerMapping
<!-- 配置handlerMapping --> <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/> <!-- 配置后端控制器 --> <bean name="/hello.do" class="cn.wh.controller.HelloController"></bean>
- ControllerClassNameHandlerMapping
<!-- 配置handlerMapping --> <bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"></bean> <!-- 配置后端控制器 以hello*.do开头的请求都被处理 --> <bean name="helloController" class="cn.wh.controller.HelloController"></bean>
- SimpleUrlHandlerMapping
<!-- 配置handlerMapping --> <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="mappings"> <props> <!-- key配置url,value配置的是beanName --> <prop key="/hello.do">helloController</prop> </props> </property> </bean> <!-- 配置后端控制器 --> <bean name="helloController" class="cn.wh.controller.HelloController"></bean>
- 使用注解进行映射
2. 使用注解开发:
处理器:
/** * 使用注解开发springmvc * @Controller 声明控制器 */ @Controller /** * 窄化 */ @RequestMapping("/user") public class HelloController { /** * @RequestMapping 声明映射配置 * value 指定url,可以指定多个url * method 指定请求方法,如果填写了method,那么该方法只能处理指定的请求方法 */ @RequestMapping(value="/hello.do",method=RequestMethod.GET) public ModelAndView hello(){ System.out.println("hello annotation"); ModelAndView mv=new ModelAndView("hello"); mv.addObject("msg", "annotation application"); return mv; } }
配置文件:
<!-- 配置注解适配器 该适配器 使用DefaultAnnotationHandlerMapping来进行映射,该映射器不用配置 --> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"></bean> <!-- 配置视图解析器 --> <bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> <!-- 前缀 在视图名前加上前缀 --> <property name="prefix" value="/WEB-INF/jsp/"/> <!-- 后缀 在视图名后加上后缀 --> <property name="suffix" value=".jsp"/> </bean> <!-- 配置扫描器 --> <context:component-scan base-package="cn.wh.controller"/>
在配置注解时,可以使用新的适配器和映射器:
<!-- 映射器 --> <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"></bean> <!-- 适配器 --> <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"></bean>
也可以使用
<mvc:annotation-driven/>