1、后台接收类型为String字符串:
JS文件:
function click() {
······
var ids = new Array();
var checked = $('#table').bootstrapTable('getSelections');
$.each(checked, function(i, item) {
ids.push(item.id);
}
delete(ids);
}
/* -------中间省略部分代码------ */
function delete(ids) {
······
data: {
ids: JSON.stringify(ids);
}
}
Java文件:
@PostMapping(value = "/save")
@ResponseBody
public DSResponse save(String ids) {
······
}
2、后台接收类型为String[]:
JS文件;
function click() {
······
var ids = new Array();
var checked = $('#table').bootstrapTable('getSelections');
$.each(checked, function(i, item) {
ids.push(item.id);
}
delete(ids);
}
function delete(ids) {
$.ajax({
url: "../../myTest/delete.do",
type: "get",
traditional: true, //常规的form提交,需要这个才可以提交数组
data: {
ids: ids
},
async: false,
success: function (res) {
layer.msg(res.message[0]);
if (res.status == 0) {
initInfo(); // 初始化表格
}
},
error: function (err) {
}
});
Java文件:
@PostMapping(value = "/delete")
@ResponseBody
public DSResponse delete(@RequestParam(name = "ids", required = false) Integer[] ids) {
······
}
3、后台接收类型为List< String >:
JS文件:
var ids = "";
// 若为Integer类型数据,初始化则为var ids = new Number();
var checked = $('#table').bootstrapTable('getSelections');
$.each(checked, function(i, item) {
// 将数据拼接为data1,data2类型
ids += ",";
}
Java文件:
@ResponseBody
@RequestMapping("/getquestionnairerecommend")
private DSResponse test(@RequestParam List<String> ids) {
······
}
注:
第三种情况中,必须添加@RequestParam注解,不然会报错Failed to instantiate [java.util.List]: Specified class is an interface,原因是数据封装出错。
此外:
后台若需要接收实体数据,后台可接收类型为String userJson,之后可将其转为对象或list,如下:
将json串转成对象,可使用JSON.parseObject方法:
User user = JSON.parseObject(userJson, User.class);
将json串转成list,则可使用JSON.parseArray方法:
List users = JSON.parseArray(usersJson, User.class);