springMVC-day02

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具体功能

 

posted @ 2018-11-20 16:48  羽化而等闲  阅读(111)  评论(0编辑  收藏  举报