1. 课前回顾
1、Springmvc介绍? Springmvc是Spring公司
2、Springmvc入门程序
第一步:Web工程
第二步:导Jar包
第三步:web.xml配置前端控制器 servlet Filtter
*.do.action /拦截所有不包含jsp /*拦截所有(真拦截)
第四步:配置上下文springmvc.xml 配置扫描@Controller
第五步:Handler Controller 程序员自己写的 @RequestMapping(value=”/item/queryItem.action)
Public ModelAndView quyerITem(){
跳转/WEB-INF/jsp/itemList.jsp
}
商品列表查询
3、 springmvc 原理图
用户请求到前端控制器、让处理器映射器去找相应的路径 对应的方法
返回找到的方法
前端控制器、让处理器适配器 去执行此方法(执行前绑定参数)
返回ModelAndView
前端控制器、让视图解析器 数据填充在.jsp的标签处、html
中心
三大组件
写的
Handler JSP
4、参数绑定 简单类型 queryItem(Integer id) jsp页面上input type=text name=id
POJO Item
修改商品提交 input type=text name = pojo里面要一致
包装POJO QueryVo(里面Item) name=item.id
自定义参数绑定
日期类型
Yyyy-MM_dd
2. 课程计划
1、高级参数绑定
a) 数组类型的参数绑定
b) List类型的绑定
2、@RequestMapping注解的使用
3、Controller方法返回值
4、Springmvc中异常处理
5、图片上传处理
6、Json数据交互
7、Springmvc实现RESTful
8、拦截器
3. 高级参数绑定
1. 绑定数组
需求:在商品列表页面选中多个商品,然后删除。
需求分析:
功能要求商品列表页面中的每个商品前有一个checkbok,选中多个商品后点击删除按钮把商品id传递给Controller,根据商品id删除商品信息。
我们演示可以获取id的数组即可
1. Jsp修改
2. Controller
Controller方法中可以用Integer[]接收,或者pojo的Integer[]属性接收。两种方式任选其一即可。
定义QueryVo,如下图:
2. 将表单的数据绑定到List
需求:实现商品数据的批量修改。
开发分析:
1. 在商品列表页面中可以对商品信息进行修改。
2. 可以批量提交修改后的商品数据。
1. 定义QueryVo
2. Jsp改造
3.Controller
注意:接收List类型的数据必须是包装类的属性,如果方法的形参为ArrayList类型无法正确接收到数据。
debug:
PS:关于重启tomcat:修改映射,请求头,返回值,形参需要重启,修改中间部分不需要重启。
4. @RequestMapping
通过@RequestMapping注解可以定义不同的处理器映射规则。
@RequestMapping(value="item")或@RequestMapping("/item")(这种格式只可以在属性只有value时使用)
1. URL路径映射
2. 添加在类上面
在class上添加@RequestMapping(url)指定通用请求前缀, 限制此类下的所有方法请求url必须以请求前缀开头
可以使用此方法对url进行分类管理,如下图:
此时需要进入queryItemList()方法的请求url为:
http://127.0.0.1:8080/springmvc-web2/item/itemList.action
或者
http://127.0.0.1:8080/springmvc-web2/item/itemListAll.action
3. 请求方法限定
除了可以对url进行设置,还可以限定请求进来的方法
1. 限定GET方法
@RequestMapping(method = RequestMethod.GET)
如果通过POST访问则报错:
HTTP Status 405 - Request method 'POST' not supported
例如:
@RequestMapping(value = "itemList",method = RequestMethod.POST)
2. 限定POST方法
@RequestMapping(method = RequestMethod.POST)
如果通过GET访问则报错:
HTTP Status 405 - Request method 'GET' not supported
3. GET和POST都可以
@RequestMapping(method = {RequestMethod.GET,RequestMethod.POST})
5. Controller方法返回值
1. 返回ModelAndView
例如:
ModelAndView 无敌的 带着数据 返回视图路径 不建议使用
2. 返回void
3. 返回字符串
String 返回视图路径 数据:形参上加Model 官方推荐 解耦和 数据 视图分离 建议使用
3.1. Redirect重定向
Contrller方法返回字符串可以重定向到一个url地址
如下商品修改提交后重定向到商品编辑页面。
例如:商品修改页面,想修改之后跳转到商品列表:
商品列表:
商品修改:
3.2. forward转发
Controller方法执行后继续执行另一个Controller方法
如下商品修改提交后转向到商品修改页面,修改商品的id参数可以带到商品修改方法中。
至此:springMVC基础知识点学完,接下来该学springMVC具体功能