spring mvc 如何传递集合参数(list,数组)
spring mvc 可以自动的帮你封装参数成为对象,不用自己手动的通过request一个一个的获取参数,但是这样自动的参数封装碰碰到了集合参数可能就需要点小技巧才可以了。
一、基础类型和引用类型有什么区别?
基础类型是直接保存在堆栈上面的,引用类型(对象)值保存在堆上面,地址保存在栈上面的,基础类型都有非null的默认值,比如int默认是0,boolean默认是false,引用类型除非是用new开辟出新的空间,否则只有地址信息没有值信息。int 和 integer的区别不仅是有没有默认值的问题,Integer还有自己的成员变量,虽然都是静态的,比如Integer.MAX_VALUE就是其中一个,而Integer的值都是保存在一个地址不变的成员变量value。
aaarticlea/png;base64,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" alt="" />
二、基础类型、赋值的时候不需要特别指名成员变量(String,基础类型的封装类)的引用类型集合参数
说了那么多基础类型和引用类型区别,最主要的一点就是基础类型是没有成员变量的,基础类型可以直接是a=x,而引用类型的值大多需要a.b=x才可以得到,那么获取基础类型的集合参数是最容易的,比如你有个方法是需要获取一个int的数组或者list列表,直接在页面上通过同名的input框就可以办到了
1
2
3
|
< input type="text" value="" name="titleName" id="add_titleName"/> < input type="text" value="" name="titleName" id="add_titleName"/> < input type="text" value="" name="titleName" id="add_titleName"/> |
后台获取
1
|
public void getParmas(List< String > titleName) |
或者
1
|
public void getParmas(String[] titleName) |
都可以获取到titleName的值。
这里String不是8大基础类型,但是String和基础类型有个共同的特点,就是赋值的时候不需要特别指名成员变量,包括基础类型的封装类一样。
三、赋值的时候不需要特别指名成员变量引用类型的集合参数
这些类基本上都是我们自己组建的业务逻辑类,很多情况下还包含了相互组合的关系,先说第一种情况,单纯的接收一个List<?> xxx;
1
2
3
4
|
@RequestMapping ( "/add" ) public void add(Model model,List<SysRole> sysRole){ 。。。。 } |
这样的方式是不行的,会报Could not instantiate bean class [java.util.List]: Specified class is an interface这个异常。
Servlet.service() for servlet [springServlet] in context with path [/bid] threw exception [Request processing failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [java.util.List]: Specified class is an interface] with root cause
org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [java.util.List]: Specified class is an interface
怎么解决了?
需要我们用到第二种情况。
接收一个带有list成员变量的的对象,比如你有个类是User,一个User可以有多个联系电话,
class User{
List<Contact> contactList;
}
我们要获取一个带有多个联系人的user参数
public void addUser(User user){
.....
}
在页面上直接可以通过
<input type="text" value="" name="user.contactList[0].phone" id="add_contact_phone_1"/>
这样的方式进行获取参数。
那我们碰到第一种情况怎么办呢?把它变成第二种方式进行处理,也就是说新建一个包装类专门来包装类似的需要接收的list参数。
为什么第一种方式不行了?
因为spring mvc 中获取参数的方式不管有多少种,他的本质依然是
request.getParameter("name")
那把这个参数封装到一个对象中,也只能是同setter方法,那问题的关键是如何找到这个setter
方法?肯定是setName中的name和request中的name对应。这才能找到。你想,如果你单纯接收一个list参数,list虽然有get和set方法,但是没有名字呀,只能根据数组下标来判断参数位置。所以只能通过第二种方法进行参数传递
spring mvc 如何传递集合参数(list,数组)的更多相关文章
- spring MVC中传递的参数对象中包含list的情况
测试需要的jar包:spring 3.2.jar + jackson-all-1.8.5.jar. 写代码时碰到个需要将对象里的子明细一起传递到controller里去,当时就想直接将参数一起传递过 ...
- Spring MVC(七)--传递JSON参数
有时候参数的传递还需要更多的参数,比如一个获取用户信息的请求中既有用户ID等基本参数,还要求对查询结果进行分页,针对这种场景,一般都会将分页参数封装成一个对象,然后将它和基本参数一起传给控制器,为了控 ...
- 传递集合参数以及SpringMVC和Struts2的区别
一.传递集合参数 二.和Struts2的区别 Struts2是基于类封装请求参数,SpringMVC是基于方法封装参数:
- ASP.NET MVC 后台接收集合参数和 jquery ajax 传值
MVC 接收参数数组(集合) 示例样本: public class Person { public string FirstName { get; set; } publi ...
- Spring MVC之Action输入参数
第一部分:Action输入参数Spring MVC 通过@RequestMapping注解映射请求,最终的真正执行代码为处理器方法,即@RequestMapping注解的方法.Spring MVC方法 ...
- Spring MVC 接受的请求参数
目录 1. 概述 2. 详解 2.1 处理查询参数 2.2 处理路径参数接受输入 2.3 处理表单 3. 补充内容 3.1 Ajax/JSON 输入 3.2 multipart参数 3.3 接收 he ...
- Spring MVC 接收Json格式参数
今天做了一个关于表格排序的功能,可以通过右边的箭头做排序操作,每次操作需要通过Ajax将每条记录的Id数组作为参数去发送请求, 后台Spring MVC接到参数后作更改序号操作. 前端页面发送请求的代 ...
- Spring MVC 不能正常获取参数的值
最近在开发时遇到一个非常奇怪的问题,在tomcat8中使用Spring MVC框架,在Controller中的方法参数无法正常获取到相应的值,将tomcat版本换成7.0就解决了. 记录以下解决过程, ...
- SpringMVC(八):使用Servlet原生API作为Spring MVC hanlder方法的参数
在SpringMVC开发中,是有场景需要在Handler方法中直接使用ServletAPI. 在Spring MVC Handler的方法中都支持哪些Servlet API作为参数呢? --Respo ...
随机推荐
- KVM和远程管理工具virt-manager
kvm在server端的部署(针对rhel6系统,可以构建本地更新源) 注意:如果只是安装管理工具,可以试试直接执行8步骤 1.对服务器实行kvm虚拟化首先需要确认服务器的物理硬件是否支持 cat / ...
- Apache Lucene版本迁移指南
http://lucene.apache.org/core/4_0_0/MIGRATE.html 本文详细介绍了lucene的版本升级过程中的重大改进与调整. 比如:灵活的索引改变了低水平的域.词.文 ...
- 2017 MoveIt!更新 ros indigo
First MoveIt! Update in 2017. Using it on NEXTAGE pt.1 2017 MoveIt! update pt.2; Stopping motion on ...
- JS验证表单中TEXT文本框中是否含有非法字符
<form id="form" action="" method="post"> <input type="hi ...
- Knockout.Js官网学习(模版绑定)
模板绑定器 如今页面结构越来越复杂,仅仅依靠foreach已经不足以我们的使用,这个时候我们就需要模板的存在,模板的优点自然很多,首先会让页面整洁,同时修改起来也可以方面的定位,最重要的是ko可以条件 ...
- Django杂记
django 中 slice 和 truncatewords 不同用法 django中取一段字符串中的前 N 个字符,可以用 slice和truncatewords ,但是两者是有区别的. djang ...
- element-ui 2.7.2版本使用 表格展开行 功能遇到的奇葩问题?
在使用 element-ui 2.7.2版本的时候报下面的错误: [Vue warn]: Error in callback for watcher "data": "E ...
- SourceTree 3.0.17如何跳过注册进行安装? — git图形化工具(一)
SourceTree 3.0.17个人版本的尝试跳过注册方式好几次都没成功,于是下载了企业版本https://www.sourcetreeapp.com/enterprise. 安装过程: 1.首次点 ...
- JDBC连接池和DBUtils
本节内容: JDBC连接池 DBUtils 一.JDBC连接池 实际开发中“获得连接”或“释放资源”是非常消耗系统资源的两个过程,为了解决此类性能问题,通常情况我们采取连接池技术,来共享连接Conne ...
- mysql千万级表关联优化(2)
概述: 交代一下背景,这算是一次项目经验吧,属于公司一个已上线平台的功能,这算是离职人员挖下的坑,随着数据越来越多,原本的SQL查询变得越来越慢,用户体验特别差,因此SQL优化任务交到了我手上. 这个 ...