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/>
