1.springMvc是spring组织出品的一个表现层框架, 和struts2属于同类型的框架.
2. springMvc作用:
a. 接收请求和从请求中接收参数
b. 将处理好的数据返回给页面, 并在页面展示
3.springMvc三大组件: 处理器映射器, 处理器适配器, 视图解析器
springMVC中需要我们写的有哪些: 处理器也就是我们写的controller, 视图view也就是我们写的页面
4. 如果在springMvc中没有配置处理器映射器, 处理器适配器也可以使用, 但是系统性能会降低.
如果没有在springMvc.xml中配置处理器映射器和处理器适配器, 默认每次请求都会去找DispatcherServlet.properties
配置文件, 去里面的处理器映射器列表和处理器适配器列表中, 逐个匹配, 找到对应类型的执行.如果在springMvc.xml
中显示的配置了处理器映射器和处理器适配器就会直接执行不会去找DispatcherServlet.properties配置文件, 就会
增强系统的运行速度.
5. 注解驱动: 作用就是配置这个注解就相当于显示的配置了最新版的注解形式的处理器映射器和处理器适配器, 会加强系统运行速度
6. 注解驱动和注解扫描, 是否需要都配置为什么, 有什么区别?
必须都配置, 注解驱动和注解扫描, 作用不一样,
注解扫描, 是使用@Controller注解生效
注解驱动相当于显示配置最新版处理器映射器和处理器适配器, 加快系统运行速度.
spring原理:
springMVC入门案例
本教程使用环境:
Jdk:jdk1.7.0_72
Eclipse:mars
Tomcat:apache-tomcat-7.0.53
Springmvc:4.1.3
- 创建一个javaweb工程
- 导入jar包
-
创建itemList.jsp
4、把参考资料中的itemList.jsp复制到工程的/WEB-INF/jsp目录下
5、创建controller
@Controller
public class ItemController {
@RequestMapping("/itemList")
public ModelAndView itemList() throws Exception {
List<Items> itemList = new ArrayList<>();
//商品列表
Items items_1 = new Items();
items_1.setName("我是谁");
items_1.setPrice(6000f);
items_1.setDetail("这是测试数据");
itemList.add(items_1);
//创建modelandView对象
ModelAndView modelAndView = new ModelAndView();
//添加model
modelAndView.addObject("itemList", itemList);
//添加视图
modelAndView.setViewName("/WEB-INF/jsp/itemList.jsp");
// modelAndView.setViewName("itemsList");
return modelAndView;
}
}
创建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:dubbo="http://code.alibabatech.com/schema/dubbo"
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.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
http://code.alibabatech.com/schema/dubbo
http://code.alibabatech.com/schema/dubbo/dubbo.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.0.xsd">
<context:component-scan base-package="cn.kingdee.springmvc.controller"/>
</beans>
配置前端控制器
<!-- 前端控制器 -->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>*.action</url-pattern>
</servlet-mapping>
开始测试
备注:参数绑定
a)Springmvc默认支持的类型:
httpServletRequest, HttpServletResponse, HttpSession, Model
默认支持的参数就是在需要的时候可以加上, 不需要就可以不加, 随意使用.
b)简单数据类型(string, double, long, boolean等)
springMvc可以直接接收这些简单类型的参数, 并且可以进行自动的类型转换,
要求接收的变量名称必须等于页面上input框的name属性值
如果想要接收的变量名称随意起名可以使用@RequestParam注解, 一般不使用
@RequestParam("id")Integer idddddd,
c)Pojo类型:
要求: 接收的pojo的属性名称必须等于页面上input框的name属性值
d)Pojo包装类型:
要求: 页面的input框的name属性值必须等于接受的pojo的属性.属性.属性.....
e)自定义参数绑定:
默认springMvc只能够自动转换简单类型的参数, 对于date日期无法进行自动类型转换,
所以需要我们手动编写自定义转换器进行转换.