1. 程式人生 > >Spring的Controller中某個方法引數加了@RequestBody之後請求無法進入方法

Spring的Controller中某個方法引數加了@RequestBody之後請求無法進入方法

遇到上述問題,先檢查JS的Ajax相關程式碼有沒有寫對,模版如下:[javascript] view plain copy
  1.                      $.ajax({  
  2.     type : 'POST',  
  3.     dataType : 'json',  
  4.     url : getRootPath() + '/require/publish',  
  5.     data : JSON.stringify(mydata),  
  6.     contentType : "application/json",  
  7.     success : function(data) {  
  8.         alert("釋出成功!"
    );  
  9.     },  
  10.     error : function(data){       
  11.         alert(JSON.stringify(mydata));                    
  12.     }                 
  13. });  

如果寫對了,檢查後臺Controller程式碼,如果也是對的,只能說明,配置檔案沒配好。

一定是漏了Jackson相關jar包,需要3個jar包,下載之後匯入:

jackson-annotations-2.6.jar

jackson-databind-2.6.jar

jackson-core-2.6.jar

同時在springmvc-servlet.xml中增加配置:

  1. <!-- json轉換器 -->
  2. <bean
  3.     class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
  4.     <propertyname="messageConverters">
  5.         <list>
  6.             <refbean="mappingJackson2HttpMessageConverter"/>
  7.         </list>
  8.     </property>
  9. </bean
    >
  10. <beanid="mappingJackson2HttpMessageConverter"
  11.     class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
  12.     <propertyname="supportedMediaTypes">
  13.         <list>
  14.             <value>text/html;charset=UTF-8</value>
  15.             <value>text/json;charset=UTF-8</value>
  16.             <value>application/json;charset=UTF-8</value>
  17.         </list>
  18.     </property>
  19. </bean>