Spring的Controller中某個方法引數加了@RequestBody之後請求無法進入方法?
阿新 • • 發佈:2019-02-01
遇到上述問題,先檢查JS的Ajax相關程式碼有沒有寫對,模版如下:
如果寫對了,檢查後臺Controller程式碼,如果也是對的,只能說明,配置檔案沒配好。
$.ajax({ type : 'POST', dataType : 'json', url : getRootPath() + '/require/publish', data : JSON.stringify(mydata), contentType : "application/json", success : function(data) { alert("釋出成功!"); }, error : function(data){ alert(JSON.stringify(mydata)); } });
如果寫對了,檢查後臺Controller程式碼,如果也是對的,只能說明,配置檔案沒配好。
一定是漏了Jackson相關jar包,需要3個jar包,下載之後匯入:
jackson-annotations-2.6.jar
jackson-databind-2.6.jar
jackson-core-2.6.jar
同時在springmvc-servlet.xml中增加配置:
<!-- json轉換器 --> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <ref bean="mappingJackson2HttpMessageConverter" /> </list> </property> </bean> <bean id="mappingJackson2HttpMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/html;charset=UTF-8</value> <value>text/json;charset=UTF-8</value> <value>application/json;charset=UTF-8</value> </list> </property> </bean>