问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

SpringMVC怎么获取前台传来的数组

发布网友 发布时间:2022-04-24 20:06

我来回答

3个回答

懂视网 时间:2022-04-23 08:20

这次给大家带来jquery提交数组数据用springmvc接收的方法,jquery提交数组数据用springmvc接收的注意事项有哪些,下面就是实战案例,一起来看一下。

var selectedUsers = $('#users').tagbox('getValues');
if (selectedUsers.length > 0) {
 $.post(appPath + "/role/users/add/", {
 'systemID' : $('#systemID').combobox('getValue'),
 'roleID' : roleID,
 'users' : selectedUsers
 }, function(result, status) {
 if (result == 'false') {
 $.messager.show({
 title : '角色管理',
 msg : '添加用户发生异常'
 });
 }
 // 刷新被选择的用户
 getSelectedRoleUsers();
});

selectedUsers 获得到的是一个数组 ,以users这个名字提交

@PostMapping("/users/add/")
@ResponseBody
public String addUsers(String systemID, String roleID, @RequestParam(name = "users[]") String[] users) {
}

注意看红色部分,必须以users[]这个名称获得,才可以得到所想要的数据。

相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!

推荐阅读:



热心网友 时间:2022-04-23 05:28

前端假设使用如下url进行ajax请求:假http://ip:port/ap/aa.jsp?a=1&a=2
或者,使用如下表单提交:
<form action="" method="post">
<input name="a" type="text" value="1">
<input name="a" type="text" value="2">
<form>
然后你在 Java里面写这样的String[] a = arg0.getParameterValues("a")代码 , 那么java里面的这个a的字符集合里面就是[1,2]

2、后端也可以使用springmvc的如下方式获取:
public String xxx(@RequestParam("a") String[] params){
..
}

2、使用springmvc 的requestBody接受ajax传来的数组、json对象:
1)controller:

[java] view plain copy
public ResultMessage deleteConbineCode(@RequestBody Long[] id) {
Map queryMap = new HashMap();
queryMap.put("id", id);
try {
CombineCodeService.deleteConbineCode(queryMap);
return new ResultMessage(0, "删除成功!");
} catch (Exception e) {
e.printStackTrace();
logger.error(e.getMessage());
return new ResultMessage(-1, "删除失败!");
}
}

2)前端:

[javascript] view plain copy
var ids = [];
for(var i=0;i<rows.length;i++){
alert(rows[i].id);
ids.push(rows[i].id);
}
$.ajax({
type : "post",
contentType : "application/json;charset=UTF-8",
url : "<%=basePath %>combineCode/deleteConbineCode",
dataType : "json",
processData : false,
data : $.toJSONString(ids),
success : function(_data) {
if(_data.status==0) {
$("#code_grid").datagrid('reload');
}
}
});

实例二:

1)java

[java] view plain copy
public class AjaxController {

/**
* 接收客户端发送的JSON数据,并将其转换为对象
* @RequestBody
* 其一,从http请求报文的请求体中获取JSON数据,则说明必须是POST请求
* 其二,Body中为JSON,则最可能为Ajax请求,通过form进行post请求好像办不到呢
*/
@RequestMapping(value="jsonPost", method=RequestMethod.POST, consumes="application/json")
@ResponseBody
public User jsonPost(@RequestBody User user) {
System.out.println("ajax json post");
System.out.println(user.getName());
System.out.println(user.getPassword());
user.setName("李四");
user.setPassword("100");
return user;
}
}

2)前端:

[javascript] view plain copy
var user = {};
user.name = $("#name").val();
user.password = $("#password").val();
var jsonStr = JSON.stringify(user);
//var json2Object = JSON.parse(jsonStr);
$.ajax({
type : "post",
contentType : "application/json;charset=UTF-8",
url : "jsonPost",
dataType : "json",
processData : false,
data : jsonStr,
success : function(msg) {
//javascript已自动将返回的json数据转为对象了
alert("success:"+msg.name+"---"+msg.password);
},
error : function() {
alert("try again!");
}
});

热心网友 时间:2022-04-23 06:46

在使用SpringMVC时,我们想传递数组引用类型,SpringMVC对数组传递有些*:
经过测试:SpringMVC支持一维数组的参数传递,不支持*数组的参数传递,如果想传递*数组,那么我们只好改用其他的办法如:1、将*数组拆成一维数组;2、将*数组改为集合传递;3、或者改为字符串,接收时间处理一下等等,4、或者将所有数组中的值拼接传递(例如:data=1&data=2&data=3,代表三个数组的值)方法很灵活。
SpringMVC传递一维数组:传递数组类型时,需要在@requestParam()中添加value,否则会出现HTTP Status 400 - Required long[] parameter 'data' is not present错误。
例如: @RequestParam(value = "data[]")long[] data
前端请求:
var dataArr = new Array();
for(var i = 0; i < 10; i++){
dataArr.push(i);
}
$.ajax({
url : "test/arrayParam.shtml",
data : {
"datas" : dataArr
},
dataType : "json",
success : function(data) {
alert(data);
},
async : false
});
}
后端代码:
package com.pyc.search.view.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
@RequestMapping("/test")
public class TestController {

@RequestMapping("/arrayParam")
public @ResponseBody
int test1(@RequestParam(value = "datas[]") long[] datas) {

return datas.length;
}
}
2 *数组可以转换为一维数组,或者转换为字符串,在后端接收时处理一下。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
重本和一本一样吗 永劫无间是第几人称:小说叙事视角分析 名字未定(第三人称双男主 周霖 温宿) 我得了职业病〈轻度苯中毒〉,有职业病诊断证明书.工伤认定期间我没上... ...后来感觉麻烦,就直接去药店买药,他开了很多 这是十年前的功放,求高手看看那几个孔是什么? 车子断保险之后再交是一样的吗 车险断交后再续交 女性查激素六项什么时候检查 有一个素质很低下的室友是一种什么样的体验? 新鲜笋子煮麻辣鱼怎么做 笋子煮麻辣鱼的做法 fuori tolleranza是什么意思 怎么使用蓝牙耳机华为? 恶搞siri的英语翻译是什么? siri中文是什么意思? 帮忙翻译几段英语 ritiro意大利语是什么意思 这句英语什么意思? Toller Full Legal Name什么意思 toller在合同里什么意思? 怎么选择音箱? 音响5.1的是什么意思,都怎么区分类型的? 漫步者音响有几种款型? 家庭的音响设备要用什么类型的好呢? 请问现在流行哪一种音响都是几分频的?发烧友的音响都是什么类型的?落地式? 音响2.1的是什么意思,都怎么区分类型的? 全球最豪华经典的音响有些什么牌子和型号? 音箱的分类与特点 音响的型号都有那些?谁能告诉我关于音响的技术参数解释? 什么是超低频音响?都有什么种类? 客厅影院里面的音箱分哪三种类型? tolleranza generale是什么意思? i&#39;m taller什么意思 华为怎么连接蓝牙 轴的表面处理roller什么意思 什么是tollerence? 意大利语 工程制图 极限与配合 mobile;incerto;stabile 分别是什么意思? 关于月的词语有哪些 有哪些和“月亮”有关的词语? 跟月亮有关的词语 与月有关的词语 写与月亮有关的词语 你还记得了哪些跟月有关的词语?请至少写两句? 有哪些和月亮有关的成语 与月有关的词成语 跟月亮有关的词语有哪些 与月亮有关的成语有,与月亮有关的成语 和月有关的四字词语 跟月有关的成语有哪些? 与月亮有关或代指月亮的词语 下周去长春哈尔滨玩,看了天气预报,大概-3到-12度,请问需要穿多少衣服?穿什么样的鞋?帽子手套必备吗?