1 注解映射器和适配器
1.1 注解映射器
spring3.1之前默认加载映射器是
org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping,3.1之后要使用:
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping
在springmvc.xml中配置RequestMappingHandlerMapping:
使用RequestMappingHandlerMapping需要在Handler 中使用@ontroller标识此类是一个控制器,使用@RequestMapping指定Handler方法所对应的url。
1.2 注解适配器
spring3.1之前默认加载映射器是
org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter,3.1之后要使用:
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter
RequestMappingHandlerAdapter,不要求Handler实现任何接口,它需要和RequestMappingHandlerMapping注解映射器配对使用,主要解析Handler方法中的形参。
<!-- 注解映射器 --> <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"></bean> <!-- 注解适配器 --> <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"></bean> <!-- 使用mvc的注解驱动可以代替 上面声明的两个适配器 映射器 --> <mvc:annotation-driven></mvc:annotation-driven>
1.3 注解开发Hanlder
访问:http://localhost:8080/Springmvc/queryItems.action
1.4 配置Handler
建议使用组件扫描,组件扫描可以扫描@Controller、@Service、@component、@Repsitory
在这说一下视图解析器:
在上面可以看到,设置viewname的时候是jsp的全路径
因为配置视图解析器的时候是这样子配置的:
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"></bean>
但是下面的配置直接写逻辑视图名就好了:
真正的视图=前缀+逻辑视图名+后缀
viewname可以这样写: