我的spring3.1 mvc服务器可以通过添加@ResponseBody
来响应正确的json结果,春天设置文件应该没有问题。包含servlet.xml
<mvc:annotation-driven/>
我把杰克逊罐放在类路径中。
我的html文件还在.ajaxSetup()方法中将contentType设置为'application / json'。我可以在Firebug中看到post header是正确的。
我也试过用json2.js来调用JSON.stringify方法。
json格式示例:
{"link":"http:xxxxx","ticker":"xxxxx"}
responseBody类是Document:
public class Document implements Serializable{
public String getLink(){...}
public String setLink(String link){...}
public String getTicker(){...}
public String setTicker(String ticker){...}
}
控制器代码:
public class LoadFile {
@RequestMapping(value="/loadFile",method=RequestMethod.POST)
public @ResponseBody Document loadFile(@RequestBody Document document){
...
}
}
html代码:
$(function() {
$.ajaxSetup({
contentType:"application/json;charset=utf-8"
});
$.post( url, { link: link, ticker:ticker },
function( data ) {
....
},"json"
);
}
文档类在添加@ResponseBody
时可以作为json对象返回,但是当作为@RequestBody
时,服务器返回400错误。不确定会发生什么。
答案 0 :(得分:0)
我最近遇到过类似的问题。对我来说,它是在变量名称周围添加“”,这给了我400错误。试试这样:
{link:"http:xxxxx",ticker:"xxxxx"}
还要确保您的变量对应于您的数据库,具体取决于Spring3.1如何处理数据。 (例如,顺序正确)
我希望能帮助你。
答案 1 :(得分:0)
将@RequestBody
替换为@ModelAttribute