DispatcherServlet.properties
前端控制器从这个文件中加载映射器和适配器和视图解析器等组件,如果不在springmvc.xml中配置,就会使用默认加载
内容:
# Default implementation classes for DispatcherServlet's strategy interfaces.
# Used as fallback when no matching beans are found in the DispatcherServlet context.
# Not meant to be customized by application developers.
org.springframework.web.servlet.LocaleResolver=org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver
org.springframework.web.servlet.ThemeResolver=org.springframework.web.servlet.theme.FixedThemeResolver
org.springframework.web.servlet.HandlerMapping=org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping,\
org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping
org.springframework.web.servlet.HandlerAdapter=org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter,\
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter,\
org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter
org.springframework.web.servlet.HandlerExceptionResolver=org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerExceptionResolver,\
org.springframework.web.servlet.mvc.annotation.ResponseStatusExceptionResolver,\
org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver
org.springframework.web.servlet.RequestToViewNameTranslator=org.springframework.web.servlet.view.DefaultRequestToViewNameTranslator
org.springframework.web.servlet.ViewResolver=org.springframework.web.servlet.view.InternalResourceViewResolver
org.springframework.web.servlet.FlashMapManager=org.springframework.web.servlet.support.SessionFlashMapManager
注解的处理器映射器和适配器注意事项
在spring3.1之前使用org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping 注解映射器
在spring3.1之后使用org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping 注解映射器
在spring3.1之前使用org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter 注解适配器
在spring3.1之后使用org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter 注解适配器
配置注解的映射器和适配器
<!-- 注解映射器 -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>
<!-- 注解适配器 -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>
在springmvc中提供了一个mvc的注解驱动,有更便利的方法供我们使用:
<!--
使用mvc:annotation-driven 代替上面两个注解映射器和适配器的配置
默认加载了很多参数绑定方法,比如说json转换的解析器,就默认加载了RequestMappingHandlerMapping和RequestMappingHandlerAdapter了
如果使用了这个,就不用配置上面的
实际开发使用mvc:annotation-driven
-->
<mvc:annotation-driven></mvc:annotation-driven>
开发注解Handler
注意:要使用注解的映射器和适配器(
必须配对使用)
/**
* Created by Alex on 2017/6/25.
* 注解的Handler
*/
//使用该注解来标识这是一个控制器
@Controller
public class ItemsController3 {
//商品查询列表
// @RequsetMapping 实现对queryItems方法对url进行映射,一个方法对应一个url
//一般建议将url和方法名写一致,方便维护
@RequestMapping("/queryItems")
public ModelAndView queryItems() throws Exception{
//调用service查询数据库,查询商品列表,这里使用静态数据模拟
List<Items> itemsList = new ArrayList<Items>();
//向List中填充静态数据
Items items1 = new Items();
items1.setName("苹果笔记本3(注解)");
items1.setPrice(6000.0);
items1.setDetail("iMac3");
Items items2 = new Items();
items2.setName("小米手机3(注解)");
items2.setPrice(2499.0);
items2.setDetail("小米3 mix");
itemsList.add(items1);
itemsList.add(items2);
//返回modelandview
ModelAndView modelAndView = new ModelAndView();
//相当于request中的setAttribute方法,在jsp页面中通过items取到书库
modelAndView.addObject("itemsList",itemsList);
//指定视图
modelAndView.setViewName("/WEB-INF/jsp/items/itemsList.jsp");
return modelAndView;
}
//可以定义其他的方法了
//商品的添加
//商品的修改
}
在springring器中加载Handler
<!--
对于注解的Handler,可以单个配置
在实际开发中建议使用组件扫描
-->
<!--<bean class="controller.ItemsController3"/>-->
<!--
Handler组件扫描
可以扫描Controller、service...
这里可以扫描Controller,指定Controller包
-->
<context:component-scan base-package="controller"></context:component-scan>
部署调试
访问地址:http://localhost:8080/queryItems.action