SpringMVC3.1 + JQuery + JSON

http://gaoqifang.blog.51cto.com/2270113/757978
出现问题: http://blog.csdn.net/wangxiaotaolhc/article/details/6701720

说明:spring mvc对json数据的处理,分为请求中json数据的处理和返回json数据的处理。
如何实现:
1、需要额外的jar包支持,我在网上找到一个总的jar包:jackson-all-1.9.2.jar;
2、spring 配置文件添加视图处理配置:
<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver"> 
        <property name="order" value="1" />    
      <property name="mediaTypes"> 
      <map> 
        <entry key="html" value="text/html" /> 
        <entry key="json" value="application/json" />    
      </map> 
        </property> 
      <property name="defaultViews"> 
<!-- 输出为JSON数据--> 
<!--此处com.company.json.MappingJacksonJsonView覆写了org.springframework.web.servlet.view.json.MappingJacksonJsonView类,也可不必覆写直接使用此类--> 
      <list> 
        <bean class="com.company.json.MappingJacksonJsonView" />    
      </list>    
    </property> 
      <property name="ignoreAcceptHeader" value="true" />    
  </bean>

3.接收请求中的json数据:
   1)使用ajax方式发送带有json数据的请求代码:
$.ajax(type: 'POST', 
         url:"xxxxx" , 
         data: JSON.stringify({userName:'winzip',password:'password',mobileNO:'13818881888'}),    
         dataType: 'json', 
         contentType:'application/json;charset=UTF-8',            
         success: function(result) {    
                 alert(result.success); 
  
         } );
   其中data中传递的便是一个User(User类需要自己创建)对象的json形式;

  2)后台控制器中处理json数据的实现方法:
/**     
         * 输入为JSON格式的数据的方式        
         * 1、@RequestBody 将httpRequest的body绑定到方法参数上     
         * @param param     
         * @return     
         */ 
@RequestMapping(value = "xxxxx")        
public ModelAndView someMethod(@RequestBody User user){ 
    do something………; 
    return some; 
} 

   代码解释:当一个json请求传过来一个json数据形式的User对象时,会自动将json数据转换成User对象。

3.接收请求中的json数据:
  1)请求:同样使用ajax方式发送json请求
$.ajax({ 
          "url" : "xxxxxxx", 
          "type" : "GET", 
          "dateType" : "json", 
          "success" : function(data) { 
            此处便可对返回的json按照自己需要进行处理了
             如果返回的是一个单独对象,可直接使用data.对象属性,来获得该对象的相应属性值,如果返回的是一个集合对象,可使用for循环data[i].对象属性,来获得对象相应的属性值。
 
           } 
        });

   2)后台控制器中处理代码的实现方法:
/**     
         * 输出为JSON格式的数据的方式        
         * @ResponseBody的作用是把返回值直接写到HTTP response body里     
         */     
@RequestMapping("xxxxxxx") 
  @ResponseBody 
  public Object someMethod() { 
    ………………………….. 
return someObject; 
} 

   代码解释:当一个type为json请求调用此方法,那么,他自动将返回的对象转换成json数据返回。


附件是所需要的jar

你可能感兴趣的:(springMVC)