Spring web mvc和Struts2都属于表现层的框架,它是Spring框架的一部分,我们可以从Spring的整体结构中看得出来,如下图:
Springmvc处理流程
入门程序
创建web工程
springMVC是表现层框架,需要搭建web工程开发。
如下图创建动态web工程:
输入工程名,选择配置Tomcat(如果已有,则直接使用),如下图:
配置Tomcat,如下图
选择准备好的Tomcat,这里用的是Tomcat7,如下图:
选择成功,点击Finish,如下图:
如下图选择web的版本是2.5,可以自动生成web.xml配置文件
导入jar包
从课前资料中导入springMVC的jar包,位置如下图:
加入配置文件
创建config资源文件夹,存放配置文件,如下图:
创建springmvc.xml
创建SpringMVC的核心配置文件
SpringMVC本身就是Spring的子项目,对Spring兼容性很好,不需要做很多配置。
这里只配置一个Controller扫描就可以了,让Spring对页面控制层Controller进行管理。
创建springmvc.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsdhttp://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd"><!-- 配置controller扫描包 --><context:component-scan base-package="cn.itcast.springmvc.controller" /></beans>
配置文件需要的约束文件,位置如下图:
创建包cn.itcast.springmvc.controller
效果如下图:
配置前端控制器
配置SpringMVC的前端控制器DispatcherServlet
在web.xml中
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://java.sun.com/xml/ns/javaee"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"id="WebApp_ID" version="2.5"><display-name>springmvc-first</display-name><welcome-file-list><welcome-file>index.html</welcome-file><welcome-file>index.htm</welcome-file><welcome-file>index.jsp</welcome-file><welcome-file>default.html</welcome-file><welcome-file>default.htm</welcome-file><welcome-file>default.jsp</welcome-file></welcome-file-list><!-- 配置SpringMVC前端控制器 --><servlet><servlet-name>springmvc-first</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!-- 指定SpringMVC配置文件 --><!-- SpringMVC的配置文件的默认路径是/WEB-INF/${servlet-name}-servlet.xml --><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:springmvc.xml</param-value></init-param></servlet><servlet-mapping><servlet-name>springmvc-first</servlet-name><!-- 设置所有以action结尾的请求进入SpringMVC --><url-pattern>*.action</url-pattern></servlet-mapping>
</web-app>
加入jsp页面
把参考资料中的itemList.jsp复制到工程的/WEB-INF/jsp目录下,如下图:
实现显示商品列表页
创建pojo
分析页面,查看页面需要的数据,如下
<tr><td>${item.name }</td><td>${item.price }</td><td><fmt:formatDate value="${item.createtime}" pattern="yyyy-MM-dd HH:mm:ss"/></td><td>${item.detail }</td><td><a href="${pageContext.request.contextPath }/itemEdit.action?id=${item.id}">修改</a></td></tr>
创建商品pojo(可以用逆向工程导入)
public class Item {// 商品idprivate int id;// 商品名称private String name;// 商品价格private double price;// 商品创建时间private Date createtime;// 商品描述private String detail;创建带参数的构造器
set/get。。。
}
创建ItemController
ItemController是一个普通的java类,不需要实现任何接口。
需要在类上添加@Controller注解,把Controller交由Spring管理
在方法上面添加@RequestMapping注解,里面指定请求的url。其中“.action”可以加也可以不加。
@Controller
public class ItemController {// @RequestMapping:里面放的是请求的url,和用户请求的url进行匹配// action可以写也可以不写@RequestMapping("/itemList.action")public ModelAndView queryItemList() {// 创建页面需要显示的商品数据List<Item> list = new ArrayList<>();list.add(new Item(1, "1华为 荣耀8", 2399, new Date(), "质量好!1"));list.add(new Item(2, "2华为 荣耀8", 2399, new Date(), "质量好!2"));list.add(new Item(3, "3华为 荣耀8", 2399, new Date(), "质量好!3"));list.add(new Item(4, "4华为 荣耀8", 2399, new Date(), "质量好!4"));list.add(new Item(5, "5华为 荣耀8", 2399, new Date(), "质量好!5"));list.add(new Item(6, "6华为 荣耀8", 2399, new Date(), "质量好!6"));// 创建ModelAndView,用来存放数据和视图ModelAndView modelAndView = new ModelAndView();// 设置数据到模型中modelAndView.addObject("list", list);// 设置视图jsp,需要设置视图的物理地址modelAndView.setViewName("/WEB-INF/jsp/itemList.jsp");return modelAndView;}
}
启动项目测试
启动项目,浏览器访问地址
http://127.0.0.1:8080/springmvc-first/itemList.action
效果如下图: