标签: springmvc
本文主要介绍springmvc的框架原理,并通过一个入门程序展示环境搭建,配置以及部署调试。
springmvc是spring框架的一个模块,springmvc和spring无需通过中间整合层进行整合。
给个官网示意图
组件及其作用
注:其中加粗的为需要程序员开发的,没加粗的为不需要程序员开发的
文末参考链接中《跟开涛学SpringMVC》里面有张图挺好的,感觉很详细.
步骤:
DispatcherServlet
)HandlerMapping
)查找Handler
(可根据xml配置、注解进行查找)HandlerMapping
)向前端控制器返回Handler
HandlerAdapter
)执行Handler
HandlerAdapter
)向前端控制器返回ModelAndView
DispatcherServlet
)请求视图解析器(ViewResolver
)进行视图解析,根据逻辑视图名解析成真正的视图(jsp)DispatcherServlet
)返回ViewModelAndView
对象中)填充到request域一个展示商品列表的小页面
intellij IDEA 15.0.2
new->project->maven->勾选create from archetype->选中webapp
在src/main
下新建java
文件夹,标记为Sources Root
这样建出来的工程感觉有问题,点开一些xml文件一片红,心里不是很踏实,所以放弃这个方法了
new->project->maven
,建一个裸的maven工程,手动建webapp的目录
在src/main
下新建文件夹webapp
pom.xml文件
添加依赖
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-webmvcartifactId>
<version>4.2.4.RELEASEversion>
dependency>
加上下面的标签会生成Artifacts
<packaging>warpackaging>
build标签的finalName要和Artifacts的output directory一致
<build>
<finalName>springmvc-2nd-1.0-SNAPSHOTfinalName>
build>
web.xml
<servlet>
<servlet-name>springmvcservlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServletservlet-class>
<init-param>
<param-name>contextConfigLocationparam-name>
<param-value>classpath:springmvc.xmlparam-value>
init-param>
servlet>
<servlet-mapping>
<servlet-name>springmvcservlet-name>
<url-pattern>*.actionurl-pattern>
servlet-mapping>
将编写Handler在spring容器加载
<bean name="/queryItems.action" class="com.iot.ssm.controller.ItemsController"/>
在classpath下的springmvc.xml中配置处理器映射器
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
所有处理器适配器都实现了HandlerAdapter
接口
源码
public boolean supports(Object handler) {
return handler instanceof Controller;
}
此适配器能执行实现Controller
接口的Handler
需要配置解析jsp的视图解析器
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"/>
在springmvc.xml中视图解析器配置前缀和后缀:
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
bean>
程序中不用指定前缀和后缀:
//指定视图
//下边的路径,如果在视图解析器中配置jsp的路径前缀和后缀,修改为items/itemsList
//modelAndView.setViewName("/WEB-INF/jsp/items/itemsList.jsp");
//下边的路径配置就可以不在程序中指定jsp路径的前缀和后缀
modelAndView.setViewName("items/itemsList");
HTTP Status 404 -
处理器映射器根据url找不到Handler,说明url错误
HTTP Status 404 -/springmvc/WEB-INF/jsp/items/itemsLists.jsp
处理器映射器根据url找到了Handler,转发的jsp页面找不到
- 第二章 Spring MVC入门 —— 跟开涛学SpringMVC
- Spring MVC Framework Tutorial - TutorialsPoint
- Web MVC framework
作者@brianway更多文章:个人网站
|
CSDN|
oschina