Ajax 将“Map”对象传递给 Spring MVC 控制器

2024-01-09

Spring MVC 似乎不知道如何将 javascript“地图”映射到 Java 地图对象

在 Web UI 中,例如 foo.jsp,

<script>
var myMap = {};
myMap["people"] = ["Alex","Bob","Charles","Dave"];
myMap["fruit"]  = ["Apple","Orange"];
$.ajax({
         type : "POST",
         url :  "/myURL",
         data : "myMap=" + myMap, // I tried "myMap="+JSON.stringify(myMap),  as well, it doesn't work neither
         success : function(response) {
             alert("Success! response =  " + response);
         },
         error : function(e) {
             alert("AJAX error");
         }
});
</script>

在服务器端,我有一个数据模型类,用于从 Web UI 接收数据

@Setter @Getter
class Parameters {
    private Map<String, List<String>> myMap; //this is the java class I want to map the string to
}

在控制器中,

@RequestMapping(value = "/myURL", method = RequestMethod.POST)
@ResponseBody
public List<String> fooControl(Parameters parameters ) {
   // do something with parameters ...
}

我在服务器端遇到的错误是这样的,

[tomcat:launch] Aug 14, 2013 3:12:37 PM org.apache.catalina.core.StandardWrapperValve invoke
[tomcat:launch] SEVERE: Servlet.service() for servlet dispatcher threw exception
[tomcat:launch] org.springframework.validation.BindException:   
org.springframework.validation.BeanPropertyBindingResult: 1 errors  
[tomcat:launch] Field error in object 'Parameters ' on field 
'myMap': rejected value [{"people":["Alex","Bob","Charles","Dave"],"fruit":    
["Apple","Orange"]}]; codes     
[typeMismatch.repairInfomationParametersExperimental.constraints,typeMismatch.constraints,typeMismatch.java.util.Map,typeMismatch]; arguments  
[org.springframework.context.support.DefaultMessageSourceResolvable: codes 
[repairInfomationParametersExperimental.constraints,constraints]; arguments []; default message 
[constraints]]; default message [Failed to convert property value of type 'java.lang.String' to 
required type 'java.util.Map' for property 'constraints'; nested exception is 
java.lang.IllegalStateException: Cannot convert value of type [java.lang.String] to required type 
[java.util.Map] for property 'myMap': no matching editors or conversion strategy found]

我想有一种方法可以告诉Spring如何将JSON格式字符串映射到Java Map?

Thanks!


修改javascript代码:

$.ajax({
     type : "POST",
     url :  "/myURL",
     contentType: "application/json",
     data : JSON.stringify(myMap) // .....

修改服务器端java代码:

@RequestMapping(value = "/myURL", method = RequestMethod.POST, consumes="application/json")
@ResponseBody
public List<String> fooControl(@RequestBody Map<String, List<String>> myMap) {
   // do something with parameters ...
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ajax 将“Map”对象传递给 Spring MVC 控制器 的相关文章

随机推荐

  • 如何在 Python 中创建 Socket.io 客户端以与 Sails 服务器通信

    我正在运行一个SailsJS我有一个控制器的实例 v0 12 3 我的模型控制器处理 WebSocket socket io 如果用户已通过身份验证 则允许连接 我的模型控制器 module exports Socket connectio
  • 如何使 VS2010 优先选择一个包含目录而不是另一个?

    我正在尝试使用XInput h来自 DirectX SDK 的文件 但此文件也存在于 Windows SDK 中 并且它是该文件的不同变体 我尝试过添加 DXSDK DIR Include 到在项目设置中包含目录 之前和之后 Include
  • 保持分支与 master 保持同步

    我有一个远程存储库 我已从该存储库中提取并从中分支 我想让新分支与 master 所做的更改保持同步 我正在考虑下面的工作流程 它是否有意义或者是否有更好的方法来做到这一点 初始分支和结账 git checkout master git p
  • 未定义的偏移量:1

    在我当前的 PHP 脚本中出现此错误 未定义的偏移量 1 我的代码在这里 query SELECT item id username item content FROM updates ORDER BY update time DESC L
  • 有没有办法在Android中使用Paging Library 3.0实现基于光标的分页?

    我正在使用一个 REST API 它使用基于游标的分页来显示一些结果 我想知道我是否可以使用分页库3 0 https developer android com topic libraries architecture paging v3
  • C++17:使用通用可变参数 lambda 包装可调用对象

    我想将任何类型的可调用对象 例如 lambda 透明地包装在另一个可调用对象中以注入附加功能 包装器的类型应与原始可调用对象具有相同的特征 相同的参数类型 相同的返回类型 完美转发传递的参数 在 SFINAE 构造中使用时具有相同的行为 我
  • underscore.js 嵌套模板

    是否有可能以某种方式从下划线模板中获取 DOM 元素并将其用作另一个模板 我的想法是 我的应用程序需要呈现一个包含带有项目和摘要的循环的文档 我偶尔需要重新渲染摘要或几个项目 所以我不能只重新渲染整个文档 但是 我希望应用程序用户能够简单地
  • AWS.IAM 不是构造函数 JavaScript SDK

    我正在使用AWSJavaScript SDK Both var s3 new AWS S3 var dynamodb new AWS DynamoDB 工作正常 当我尝试时 var iam new AWS IAM 我看到 类型错误 AWS
  • Flume的Spool Dir可以在远程机器上吗?

    每当新文件到达特定文件夹时 我就尝试将文件从远程计算机获取到我的 hdfs 我在flume中遇到了spool dir的概念 如果spool dir位于运行flume代理的同一台机器上 那么它工作得很好 有什么方法可以在远程计算机中配置假脱机
  • ORA-01830-插入日期和时间[重复]

    这个问题在这里已经有答案了 我有以下字符串值 15 01 2023 18 03 42 我尝试将其插入到 Oracle 中的日期列中 然而 这会产生可怕的 ORA 01830 错误 insert into my schema my table
  • MKAnnotation Swift

    我不确定如何用 swift 语言注释地图 我不知道如何创建 NSObject 类 以下是我尝试过但无法运行的代码 import Foundation import MapKit class MapPin MKAnnotation var m
  • 如何平滑 MATLAB 中的绘图?

    我在图表上绘制了大约 9000 个点 全分辨率 https i stack imgur com VeIP5 jpg 其实剧情并没有我想象的那么顺利 有什么方法可以将图表平滑到所需的程度吗 或者某种形式的阈值处理 以便我可以有选择地平滑太凹凸
  • VBA 参考库

    我是 VBA 新手 一直在为 Office 编写一个小型宏应用程序 我们有大约 80 个用户 他们的电脑设置基本相同 除了少数用户之外 所有用户都可以访问它 我一直在尝试使用 Web 服务引用来自动访问网页 并且我还将 Microsoft
  • 在 Python 中将 2D 图形转换为圆柱体

    At the moment I have a figure that looks like this 由代码生成 import matplotlib pyplot as plt import numpy as np data np rand
  • 无法初始化 OpenGL 渲染器库

    我正在尝试使用 genymotion 打开虚拟 Android 设备 问题是它无法启动 Genymotion 虚拟设备 错误显示无法初始化 OpenGL 渲染器库 我已经检查了 OpenGL 支持 它的版本是 3 0 现在有什么问题吗 无法
  • 来自 Ajax 源的 DataTables 按数据顺序排序并显示格式化日期

    基本上我想将数据从ajax提取到我的列中 但我希望列中的单元格具有data order它们的属性与 ajax 调用的值并使用 moment js 格式化单元格中的数据 我认为这是使其美观且可订购的最佳方式 我找到了 datetime mom
  • 如何订阅改变DependencyProperty? [复制]

    这个问题在这里已经有答案了 可能的重复 监听依赖属性的变化 https stackoverflow com questions 4764916 listen to changes of dependency property 请原谅我的英语
  • 使用 jersey 客户端将 JSON 响应读取为字符串

    我正在使用 jersey 客户端将文件发布到 REST URI 该 URI 以 JSON 形式返回响应 我的要求是将响应读取为字符串 JSON 以下是将数据发布到 Web 服务的代码段 final ClientResponse client
  • C# UTF8 输出保持编码字符完整

    我有一个非常简单的问题 我似乎无法理解 我有一个正确编码的 UTF8 String 我使用 Json NET 解析为 JObject 摆弄一些值并将其写入命令行 保持编码字符完整 除了保持编码字符完整之外 一切都很好 Code var js
  • Ajax 将“Map”对象传递给 Spring MVC 控制器

    Spring MVC 似乎不知道如何将 javascript 地图 映射到 Java 地图对象 在 Web UI 中 例如 foo jsp