gpt4 book ai didi

java - 无法将 json 字符串绑定(bind)到 Spring MVC Controller 中的对象?

转载 作者:太空宇宙 更新时间:2023-11-04 12:29:16 25 4
gpt4 key购买 nike

我正在尝试创建一个 Spring MVC 应用程序并在单击提交按钮时发送 Ajax 调用。

下面是 Controller 方法:

@ResponseBody
@RequestMapping(value = "/addTask" , method=RequestMethod.POST)
public String addTask(@ModelAttribute(value="task") Task task, BindingResult result, Model model){
String returnText = null;
System.out.println(task.getDescription()); // printing null
return "success" ;
}

但是我将 Task 对象中的所有属性都设置为 null

但是我可以在 Controller 中接收 json 作为字符串并通过 Gson api 转换为对象。

@ResponseBody
@RequestMapping(value = "/addTask" , method=RequestMethod.POST)
public String addTask(@RequestBody String task){
String returnText = null;

Gson gson = new Gson();
Task rr = gson.fromJson(task, Task.class);
taskList.add(rr);
return "success" ;
}

下面是ajax代码:

 function doAjaxPost() {

var id = $('#id').val();
var desc = $('#description').val();
var dueDate = $('#dueDate').val();
var obj = { "id" : id, "description" : desc, "dueDate": dueDate};
console.log(obj)

$.ajax({
type : "POST",
contentType : "application/json",
url : "/spring/addTask",
data : JSON.stringify(obj),
dataType : 'json',
timeout : 100000,

success: function(response){
$('#description').val('');
$('#dueDate').val('');
$('#id').val('');
},
error: function(e){
alert('Error: ' + e);
console.log(e);
}
});
}

我已经在 pom.xml 中添加了以下 2 个依赖项。

<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.6.3</version>
</dependency>

<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.6.3</version>
</dependency>

最佳答案

在发出 POST 请求时,从 Ajax 调用中删除行 contentType : "application/json" 。它将设置 model 和 100% work 中的值。如果这对您有帮助,请告诉我。

关于java - 无法将 json 字符串绑定(bind)到 Spring MVC Controller 中的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38026804/

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