java - @RequestBody在Spring中始终为空

标签 java spring-mvc

对于下面的方法,JSONObject 始终为空。

 @RequestMapping(value = "/package/{id}", method = RequestMethod.PUT)
@ResponseStatus(HttpStatus.OK)
@ResponseBody
public SPackage updatePackage(@PathVariable String id, @RequestBody JSONObject   
 sPackage) {
}

我的ajax是这样的。我正在将对象作为服务器端的空 map 获取

   var jsonObject= {"customerName":$('#customerName').val()}
     var jsonData = JSON.stringify(jsonObject);  
            $.ajax({ 
                type: "PUT",
                url: "http://localhost:8081/someproj/package/" + $('#id').val(),
                dataType: "json",
                data: jsonData,
                async: false,                                               
                contentType: "application/json; charset=utf-8",
                beforeSend : function() { 
                    openModal();
                },
                success: function(data) { 
                    closeModal();
                $('#success').show();
                 console.log(data);
                }
            }); 

最佳答案

我猜spring不知道将您的json转换为JSONObject,最好的办法是接受POJO object 其结构与您的 json 类似,

@RequestMapping(value = "/package/{id}", method = RequestMethod.PUT)
@ResponseStatus(HttpStatus.OK)
@ResponseBody
public SPackage updatePackage(@PathVariable String id, @RequestBody YourJsonPOJO   
 sPackage) {
}

关于java - @RequestBody在Spring中始终为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27063392/

相关文章:

Java:不同类实例的方法实现

java - 如何在网站上放置 Spring 应用程序?

java - JPA - 为什么我在数据库中的每一行看到两个实体实例?

java - 使用eclipse调用不同子项目中的类

java - 在 Java 中高效读取大量小文件

java - 仅基于选定的微调项设置文本值

spring-mvc - 为什么spring-boot应用程序不需要@EnableWebMvc

spring - 在我们的 Spring Controller 中访问所有 @RequestHeader 键值作为 Map

java - 带有 Spring 4 注解的 404 错误页面配置

java - 添加实现而不用 Java 重新编译?