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'}); 
+0

工作,如果我有回调函数$。员额发布('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

+0

您是否试过'{“message”:“Hello Spring”}'insted of'{message:“Hello Spring”}? – 2012-02-13 07:35:28

最后我得到了修复。 JQuery $ .post方法中存在一个错误,它没有设置正确的contenttype。因此,设置在ajaxsetup的contenttyple效果很好...我用jquery.json-2.3.min.js创建一个JSON对象.....

​​