springmvc接收list参数_spring mvc框架系列文章快速入门第二篇

本文介绍了Spring MVC中如何接收数组和列表参数,讲解了`@RequestParam`的使用,以及`@RequestMapping`在类和方法上的配置,包括限定HTTP方法。此外,还涉及Controller方法返回值的处理方式,异常处理机制,设置虚拟目录,JSON数据的处理,RESTful风格,拦截器的使用,以及登录拦截器的实现。
摘要由CSDN通过智能技术生成

参数绑定之数组

商品列表:
商品名称商品价格生产日期商品描述操作${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

除了可以对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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值