参数绑定之数组
商品列表:
商品名称商品价格生产日期商品描述操作${item.name }${item.price }${item.detail }修改
如图所示,在这个表单中有多个复选框,复选框可以选择多个,我们可以使用数组的形式,在提交的时候获取到所有被选中复选框的ids
@RequestMapping(value = "/delete.action")public ModelAndView deletes(Integer[] ids) {for(Integer i :ids) {System.out.println(i);}ModelAndView m=new ModelAndView();m.setViewName("success");return m;}
还可以直接使用包装类来接收
public ModelAndView deletes(QueryVo vo) {for(Integer i :vo.getIds()) {System.out.println(i);}ModelAndView m=new ModelAndView();m.setViewName("success");return m;}
package com.huanfeng.ssm.pojo;public class QueryVo {private Items items;Integer [] ids;public Integer[] getIds() {return ids;}public void setIds(Integer[] ids) {this.ids = ids;}public Items getItems() {return items;}public void setItems(Items items) {this.items = items;}}
包装类作为参数和包装类vo没关系,而是和内部的属性有关系,内部有ids这个数组属性,所以可以直接的建立映射关系
参数绑定之列表
商品列表:
商品名称商品价格生产日期商品描述操作${item.detail }修改
package com.huanfeng.ssm.pojo;import java.util.List;public class QueryVo {private Items items;Integer [] ids;private List itemsList;public List getItemsList() {return itemsList;}public void setItemsList(List itemsList) {this.itemsList = itemsList;}public Integer[] getIds() {return ids;}public void setIds(Integer[] ids) {this.ids = ids;}public Items getItems() {return items;}public void setItems(Items items) {this.items = items;}}
@RequestMapping(value = "/update.action")public ModelAndView update(QueryVo vo) {for(Items i :vo.getItemsList()) {System.out.println(i.getPrice());}ModelAndView m=new ModelAndView();m.setViewName("success");return m;}
QueryVo这个pojo中有list列表itemslist,里面存储item对象,那么要想完成映射,jsp页面中的name也应该是itemlist[索引].name,需要具体到itemslist列表中item对象中的具体属性
需要注意是:不能直接将list放在参数列表的位置,要想使用lsit作为传参,必须将list集合放到pojo中
@RequestMapping的使用
我们之前常用的就是使用它来完成url映射:
@RequestMapping(value="item")或@RequestMapping("/item")
value可以省略
上面只映射了一个url,这里可以映射多个url,value的值是数组,可以将多个url映射到同一个方法
@RequestMapping(value = { "itemList", "itemListAll" })
除了添加在方法上面之外,还可以添加到类上面
在class上添加@RequestMapping(url)指定通用请求前缀, 限制此类下的所有方法请求url必须以请求前缀开头,也就是说类上添加之后,之后的所有方法都相当于加上了这个前缀
![cf5b29594e9260c5e8ffc383aba1c0c1.png](https://i-blog.csdnimg.cn/blog_migrate/f6b2805dd9d58cbee4d67f115e75cdf1.jpeg)
除了可以对url进行设置,还可以限定请求进来的方法
限定GET方法
@RequestMapping(method = RequestMethod.GET)
如果通过POST访问则报错:
HTTP Status 405 - Request method 'POST' not supported
例如:
@RequestMapping(value = "itemList",method = RequestMethod.POST)
限定POST方法
@RequestMapping(method = RequestMethod.POST)
如果通过GET访问则报错:
HTTP Status 405 - Requ