首页 > Java > java教程 > 正文

如何使用 Ajax 和 Spring MVC 在 @RequestBody 中传递多个变量?

Mary-Kate Olsen
发布: 2024-11-10 01:40:02
原创
223 人浏览过

How to Pass Multiple Variables in @RequestBody Using Ajax and Spring MVC?

使用 Ajax 和 Spring MVC 在 @RequestBody 中传递多个变量

问题:

如何在 @RequestBody 中传递多个变量使用 Ajax 向 Spring MVC 控制器发送 HTTP 请求主体?具体来说,您可以将 @RequestBody 与单个参数一起使用,还是需要包装对象?

答案:

虽然 @RequestBody 通常映射到单个对象,但您可以可以使用以下方法之一实现您的目标:

选项 1:使用映射

为了避免创建自定义支持对象,您可以将 @RequestBody 映射到Map:

@RequestMapping(value = "/Test", method = RequestMethod.POST)
@ResponseBody
public boolean getTest(@RequestBody Map<String, String> json) {
   //json.get("str1") == "test one"
}
登录后复制

这允许您从 JSON 访问各个变量作为地图的属性。

选项 2:使用 ObjectNode

如果您更喜欢使用完整的 JSON 树,您可以将 @RequestBody 绑定到 Jackson 的 ObjectNode:

public boolean getTest(@RequestBody ObjectNode json) {
   //json.get("str1").asText() == "test one"
}
登录后复制

这使您可以直接访问 JSON 结构及其各个节点。

比较:

两个选项都提供了不同的方法来处理 @RequestBody 中的多个变量:

  • 使用 Map 简化了对各个值的访问,但是需要更手动的方法来提取它们。
  • 使用 ObjectNode 提供了更大的灵活性,但可能需要额外的处理来访问特定值或迭代 JSON 树。

最终,最好的选择取决于您的应用程序的具体需求以及所需的灵活性水平。

以上是如何使用 Ajax 和 Spring MVC 在 @RequestBody 中传递多个变量?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板