gpt4 book ai didi

java - 如何在 spring mvc 中将 JSON 对象从 ajax 传递到 Controller ?

转载 作者:行者123 更新时间:2023-12-01 22:09:36 28 4
gpt4 key购买 nike

我正在使用 spring mvc。我需要将 json 对象从 jsp 页面传递到 Controller 。

我的ajax代码:

function createJSON() {
jsonObj = [];
item = {};
$(".values").each(function() {

var code = $(this).attr('id');
item[code] = $('#' + code).val();
});

var content=JSON.stringify(item)


$.ajax({
type: 'POST',
contentType : 'application/json; charset=utf-8',
url: "/pms/season/submit",
data: content,
dataType: "json",
success : function(data) {
alert(response);
},
error : function(e) {
alert('Error: ' + e);
}
});
}

我的 Controller 代码:

@RequestMapping(value = "/submit", method = RequestMethod.POST)
public void saveNewUsers( @RequestParam ("json") String json) {
System.out.println( "json ::::"+json );
}

但是它不起作用。

最佳答案

@RequestParam("json") 表示您打算在 URI 中包含一个名为 json 的请求参数,即/submit?json=...

我认为您打算获取请求正文,即@RequestBody。

然后我建议,除非您确实需要原始 JSON 字符串,否则您可以将 @RequestBody 转换为 Java 对象:

public void saveNewUsers(@RequestBody MyDto myDto) {
...
}

其中 MyDto 将具有与 JSON 类匹配的 getter/setter 和字段。

如果您使用@RestController而不是@Controller来注释 Controller ,则可以省略@RequestBody注释。

如果您确实想要原始 JSON 字符串,请查看上一个问题:Return literal JSON strings in spring mvc @ResponseBody

关于java - 如何在 spring mvc 中将 JSON 对象从 ajax 传递到 Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32072406/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com