Spring MVC在接收复杂集合参数
Spring MVC在接收集合请求参数时,需要在Controller方法的集合参数里前添加@RequestBody,而@RequestBody默认接收的enctype (MIME编码)是application/json,因此发送POST请求时需要设置请求报文头信息,否则Spring MVC在解析集合请求参数时不会自动的转换成JSON数据再解析成相应的集合。以下列举接收List<String>、List<User>、List<Map<String,Object>>、User[]、User(bean里面包含List)几种较为复杂的集合参数示例:
- 接收List<String>集合参数:
1、页面js代码:
- var idList = new Array();
- idList.push(“1”);
- idList.push(“2”);
- idList.push(“3”);
- var isBatch = false;
- $.ajax({
- type: "POST",
- url: "<%=path%>/catalog.do?fn=deleteCatalogSchemes",
- dataType: 'json',
- data: {"idList":idList,"isBatch":isBatch},
- success: function(data){
- …
- },
- error: function(res){
- …
- }
- });
2、Controller方法:
- @Controller
- @RequestMapping("/catalog.do")
- public class CatalogController {
- @RequestMapping(params = "fn=deleteCatalogSchemes")
- @ResponseBody
- public AjaxJson deleteCatalogSchemes(@RequestParam("idList[]") List<String> idList,Boolean isBatch) {
- …
- }
- }
- 接收List<User>、User[]集合参数:
1、User实体类:
- public class User {
- private String name;
- private String pwd;
- //省略getter/setter
- }
2、页面js代码:
- var userList = new Array();
- userList.push({name: "李四",pwd: "123"});
- userList.push({name: "张三",pwd: "332"});
- $.ajax({
- type: "POST",
- url: "<%=path%>/catalog.do?fn=saveUsers",
- data: JSON.stringify(userList),//将对象序列化成JSON字符串
- dataType:"json",
- contentType : 'application/json;charset=utf-8', //设置请求头信息
- success: function(data){
- …
- },
- error: function(res){
- …
- }
- });
3、Controller方法:
- @Controller
- @RequestMapping("/catalog.do")
- public class CatalogController {
- @RequestMapping(params = "fn=saveUsers")
- @ResponseBody
- public AjaxJson saveUsers(@RequestBody List<User> userList) {
- …
- }
- }
如果想要接收User[]数组,只需要把saveUsers的参数类型改为@RequestBody User[] userArray就行了。
- 接收List<Map<String,Object>>集合参数:
1、页面js代码(不需要User对象了):
- var userList = new Array();
- userList.push({name: "李四",pwd: "123"});
- userList.push({name: "张三",pwd: "332"});
- $.ajax({
- type: "POST",
- url: "<%=path%>/catalog.do?fn=saveUsers",
- data: JSON.stringify(userList),//将对象序列化成JSON字符串
- dataType:"json",
- contentType : 'application/json;charset=utf-8', //设置请求头信息
- success: function(data){
- …
- },
- error: function(res){
- …
- }
- });
2、Controller方法:
- @Controller
- @RequestMapping("/catalog.do")
- public class CatalogController {
- @RequestMapping(params = "fn=saveUsers")
- @ResponseBody
- public AjaxJson saveUsers(@RequestBody List<Map<String,Object>> listMap) {
- …
- }
- }
- 接收User(bean里面包含List)集合参数:
1、User实体类:
- public class User {
- private String name;
- private String pwd;
- private List<User> customers;//属于用户的客户群
- //省略getter/setter
- }
2、页面js代码:
- var customerArray = new Array();
- customerArray.push({name: "李四",pwd: "123"});
- customerArray.push({name: "张三",pwd: "332"});
- var user = {};
- user.name = "李刚";
- user.pwd = "888";
- user. customers = customerArray;
- $.ajax({
- type: "POST",
- url: "<%=path%>/catalog.do?fn=saveUsers",
- data: JSON.stringify(user),//将对象序列化成JSON字符串
- dataType:"json",
- contentType : 'application/json;charset=utf-8', //设置请求头信息
- success: function(data){
- …
- },
- error: function(res){
- …
- }
- });
3、Controller方法:
- @Controller
- @RequestMapping("/catalog.do")
- public class CatalogController {
- @RequestMapping(params = "fn=saveUsers")
- @ResponseBody
- public AjaxJson saveUsers(@RequestBody User user) {
- List<User> customers = user.getCustomers();
- …
- }
- }
Spring MVC在接收复杂集合参数的更多相关文章
- spring mvc随便接收list<objeect>参数
在后台设定一个类,PersonList类: public class PersonList {private List<User> user; public List<User> ...
- Spring MVC同时接收一个对象与List集合对象
原:https://blog.csdn.net/u011781521/article/details/77586688/ Spring MVC同时接收一个对象与List集合对象 2017年08月25日 ...
- Spring MVC如何接收浏览器传递来的请求参数--request--形参--实体类封装
阅读目录 1. 通过HttpServletRequest获得请求参数和数据 2. 处理方法形参名==请求参数名 3. 如果形参名跟请求参数名不一样怎么办呢?用@RequestParam注解 4. 用实 ...
- 0056 Spring MVC如何接收浏览器传递来的请求参数--request--形参--实体类封装
浏览器总会向服务器传递一些参数,那么Spring MVC如何接收这些参数? 先写个简单的html,向服务器传递一些书籍信息,如下: <!DOCTYPE html> <html> ...
- SpringMVC接收复杂集合参数
Spring MVC在接收集合请求参数时,需要在Controller方法的集合参数里前添加@RequestBody,而@RequestBody默认接收的enctype (MIME编码)是applica ...
- spring MVC 如何接收前台传入的JSON对象数组并处理
spring MVC 如何接收前台传入的JSON对象数组 主要方法: (主要用到的包是 net.sf.json 即:json-lib-2.3-jdk15.jar 完整相关jar包: commons- ...
- spring MVC 如何接收前台传入的JSON对象数组
spring MVC 如何接收前台传入的JSON对象数组 主要方法: (主要用到的包是 net.sf.json 即:json-lib-2.3-jdk15.jar 完整相关jar包: commons- ...
- 解决Spring MVC无法接收AJAX使用PUT与DELETE请求传输的内容
解决Spring MVC无法接收AJAX使用PUT与DELETE请求传输的内容 解决方案 在 Web.xml文件中 加入以下代码 <!--解决ajax Put与Del请求无法接收到传输的内容-- ...
- Java-Spring MVC:JAVA之常用的一些Spring MVC的路由写法以及参数传递方式
ylbtech-Java-Spring MVC:JAVA之常用的一些Spring MVC的路由写法以及参数传递方式 1.返回顶部 1. 常用的一些Spring MVC的路由写法以及参数传递方式. 这是 ...
随机推荐
- 全球最流行的66款App的共同规律
根据苹果AppStore.Google Play.App Annie.亚马逊 AppStore及Windows Phone 应用商店历年的公开数据统计,以下66个非游戏类应用正在全球范围内流行,持续时 ...
- 读取文件内容返回List<String>类型
文件内容格式: string1 string2 String 3 …… 很简单,两句话 String content = new String(Files.readAllBytes(Paths.get ...
- SQL 去除小数点后无效 0 的方法
select convert(float,10.0000) 就是这么简单
- javascript获取CSS3浏览器前缀
var prefix = (function () { var styles = window.getComputedStyle(document.documentElement, ''), pre ...
- div 固定宽高 水平垂直居中方法
div固定宽高,水平垂直居中,根据所用单位不同,分成两种情况,分别是"px"和"%"情况. 例:将三层div做出三个边框,要求水平垂直居中.效果如图 情况一(单 ...
- ajax请求在ie8下缓存问题
我今天在改项目bug的时候,发现ajax请求在ie8下有缓存,在缓存过期之前,针对相同地址发起的多个Ajax请求,只有第一次会真正发送到服务端.在某些情况下,这种默认的缓存机制并不是我们希望的(比如获 ...
- svn和git比较
svn有哪些优点和缺点? git有哪些优点和缺点? git最突然的优点就是gitflow,开发新的功能都是开一个新分支feature,完成开发新特性,合并到develop分支:提交测试也是新增一个分支 ...
- PHP与memcache和memcached以及安装使用
老规则,在作者寒冰讲之前我们要来明确memcache与memcached这两个东西到底是什么? 说法一: 两个不同版本的php的memcached的客户端 new memcache是pecl扩展库版本 ...
- MSSQL 简单练习回顾
这段时间,报了浦软培训的.NET,现在整理回顾下,算是个小小总结吧 为了便于操作,我没有在多个数据库间切换数据库实例,以一个总的数据库实例 test_demo为源进行的相关操作,代码的注释根据我的理解 ...
- JDK环境变量配置及Tomcat安装服务
1.测试jdk安装是否成功: 在cmd中输入java -version 2.环境变量: 1)新建系统变量JAVA_HOME,如:D:\Program Files\Java\jdk1.8.0_60 2) ...