javascript - 如何将 javascript 数组发送到 Spring MVC 控制器
问题描述
我正在尝试将 javascript 数组发送到 Spring MVC 控制器..但我得到空值..
我的javascript代码:
for (var n = 1; n < rowCount; n++) {
cells = rows[n].cells;
data.push([
cells[0].firstElementChild.checked,
cells[1].firstElementChild.value,
cells[2].firstElementChild.value,
cells[3].firstElementChild.value,
cells[4].firstElementChild.value
]);
}
$.ajax({
url: 'addDetails.html',
type:"POST",
data:
{promo : data}
我的 Spring MVC 控制器请求映射:
@RequestMapping("/addDetails")
public @ResponseBody void addEntity(
@RequestParam(value="promo") List<String> promo) throws IOException {
我在 Requestmapping 中没有得到任何价值的促销。请帮助我..谢谢!
解决方案
POST Body 可以在RequestBody
not in 中接收RequestParam
,其次,如果你传递你的数组,就像{promo: data}
它会被转换为HashMap
或者一些POJO
Object 而不是数组列表,所以直接传递数组,比如:
$.ajax({
url: 'addDetails.html',
type:"POST",
data:data
并使您的控制器像:
@RequestMapping("/addDetails", method = {RequestMethod.POST})
public @ResponseBody void addEntity(
@RequestBody List<String> promo) throws IOException {
更新 更多数据,您可以创建一个 POJO 类:
public class MyData{
private String lname;
private String lstate;
private String lrta;
private String lse;
private List<String> promo;
... Getters and Setters
}
你的控制器应该是:
@RequestMapping("/addDetails", method = {RequestMethod.POST})
public @ResponseBody void addEntity(
@RequestBody MyData myData) throws IOException {
推荐阅读
- javascript - 将 slideUp 动画添加到 Bootstrap 4 多级下拉菜单
- tensorflow - 训练时间序列数据的最佳机器学习模型是什么?[不预测]
- firebase - 将 Firebase 函数构建为多个运行时
- javascript - 为什么当地址中出现井号标志时,谷歌地图拒绝呈现?
- for-loop - 批处理文件:for循环后删除文件夹
- c++ - 使用 Qt5 SQL 进行异步数据库访问的策略
- c++ - Winapi - WM_CLOSE 的替代品
- jquery - 在 nodejs 和 jquery 中快速添加编辑删除 api 帖子而无需页面加载
- javascript - JSPsych - 参与者对条件的平衡分配
- azure-pipelines - Azure yaml - 换行符支持