Spring的MVC杰克逊不是从JQuery的
问题描述:
使用杰克逊阅读JSON对象,我可以能够将对象转换为JSONSpring的MVC杰克逊不是从JQuery的
@RequestMapping(value="getMessage.test", headers = "Accept=application/json" ,method = RequestMethod.POST)
public @ResponseBody TestObject getMessage(){
TestObject object=new TestObject();
object.setMessage("Hello JQuery");
return object;
}
上面的代码工作得很好。但是转换从JSON到对象给出WARN PageNotFound - 找不到匹配的servlet请求处理程序方法:path'/setMessage.test',方法'POST',参数map [[empty]]以下是代码。我要去的地方错了..
@RequestMapping(value="setMessage.test", method = RequestMethod.POST, headers = "Accept=application/json" )
public void setMessage(@RequestBody TestObject test,HttpServletRequest request){
System.out.println("Inside setting message");
System.out.println(test.getMessage());
}
JQuery的Ajax调用...
$.ajaxSetup({ contentType: "application/json; charset=UTF-8" });
$.post('getMessage.test',function(response) {
alert(response.message);
}, 'json');
$.post('setMessage.test', {message: 'Hello Spring'});
答
最后我得到了修复。 JQuery $ .post方法中存在一个错误,它没有设置正确的contenttype。因此,设置在ajaxsetup的contenttyple效果很好...我用jquery.json-2.3.min.js创建一个JSON对象.....
工作,如果我有回调函数$。员额发布('setMessage.test',{message:'Hello Spring'},function(response){alert(response.message);},'json');但是我得到org.springframework.http.converter.HttpMessageNotReadableException:无法读取JSON:意外字符('m'(code 109)):预期有效值(数字,字符串,数组,对象,'true','false'或'null')**发送的内容不是有效的JSON?** – james007 2012-02-11 09:12:57
您是否试过'{“message”:“Hello Spring”}'insted of'{message:“Hello Spring”}? – 2012-02-13 07:35:28