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

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

遇到上述問題,先檢查JS的Ajax相關程式碼有沒有寫對,模版如下:
                        $.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>