繁体   English   中英

如何在Spring MVC中将JSON对象从Ajax传递到控制器?

[英]How to pass JSON object from ajax to controller in spring mvc?

我正在使用Spring MVC。 我需要将jsp页面中的json对象传递给控制器​​。

我的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);   
        }  
    });                                                         
}

我的控制器代码:

@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注释控制器,则可以忽略@RequestBody注释。

如果您确实想要原始的JSON字符串,那么请看一下先前的问题: 在spring mvc @ResponseBody中返回文字JSON字符串

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM