SpringMVC笔记
环境准备
数据库:mysql 5.1 or others——>数据库名:mybatis
Java环境:jdk
Jetbrain idea or eclipse indigo
springmvc version:spring 3.2 or others(需要spring 3.2 所有jar包,一定要包括spring-webmvc-3.2.0.RELEASE.jar,一般在idea可自动import)
所需其他jar包:spirng3.2所有jar包、数据库驱动包mysql5.1、mybatis的jar包、mybatis和spring的整合包、log4j的日志jar包、dbcp数据库连接池包、jstl包
工程结构
-springmvc_mybatis_project
-src
-cn.itcast.ssm.controller
-cn.itcast.ssm.mapper
-cn.itcast.ssm.po
-cn.itcast.ssm.service.impl
-config
-db.properties
-log4j.properties
-JRE System Library
-Apache Tomcat v7.0
-Web App Libraries
-WebRoot
-META-INF
-WEB-INF
-lib
-web.xml
理解SpringMVC前端控制器、处理器映射器、处理器适配器、视图解析器的用法
前端控制器
①配置
第一种:*.action,访问以.action结尾,由DispatcherServlet进行解析
第二种:/,所有访问的地址都由DispatcherServlet进行解析 ,对于静态文件的解析需要另外配置,从而不让DispatcherServlet进行解析
备注:一般采用第二种方式,可以实现RESTful风格的url
处理器映射器
①分类
第一种:非注解处理器映射器(了解)
第二种:注解的处理器映射器(掌握)
例如,对标记@Controller的类中标识有@RequestMapping的方法进行映射,在@RequestMapping里定义映射的url
备注:使用注解的处理器映射器不用再xml中配置url和Handler的映射关系
处理器适配器
①分类
第一种:非注解处理器适配器(了解)
第二种:注解的处理器适配器(掌握)
备注:需要对应处理器映射器进行配对使用
<!-- 注解映射器 -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping">
<!-- 注解适配器 -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<!-- 使用mv:annotation-driven可以代替上面的注解映射器和注解适配器配置 -->
<!-- 默认加载很多的参数绑定方法,比如json转换解析器,在实际开发中也是使用该方法 -->
<mv:annotation-driven></mv:annotation-driven>
②所有处理器适配器(注解的)都需要实现HandlerAdapter接口
HandlerAdapter接口:<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter">
视图解析器
①解析jsp解析,默认使用jstl标签,classpath下的jstl的包
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" >
<!-- 配置jsp路径的前缀 -->
<property name="prefix" value="WEB-INF/jsp/" />
<!-- 配置jsp路径的后缀 -->
<property name="suffix" value=".jsp/" />
</bean>
②返回ModelAndView
// 返回ModelAndView
ModelAndView modelAndView = new ModelAndView();
// 相当于request的setAttribute,在jsp页面中通过itemsList获取数据
modelAndView.addObject("itemsList", itemsList);
// 指定视图
modelAndView.setViewName("items/itemsList");
// 上面的路径如果没有在视图解析器重配置jsp路径的前缀和jsp路径的后缀,需要修改为
// modelAndView.setViewName("/WEB-INF/jsp/items/itemsList.jsp");
return modelAndView;