SpringMVC中的Controller返回JSON問題html
①配置JSON解析器web
②使用註解@ResponseBody返回的是json,沒有使用該註解,則會進行頁面跳轉。redis
方案一spring
<!-- 自動掃描且只掃描@Controller --> <context:component-scan base-package="com.it.mds,com.it.mds.ik.web" use-default-filters="false"> <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/> <context:include-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice"/> </context:component-scan> <!-- 使用annotation 自動註冊bean, 並保證@Required、@Autowired的屬性被注入 --> <context:component-scan base-package="com.it.mds,org.iweb,com.it.mds.metadata.mybatis.service,com.it.mds.metadata.caches.redis,com.it.cloud,com.it.support.web"> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/> <context:exclude-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice"/> </context:component-scan> <mvc:annotation-driven> <mvc:message-converters register-defaults="true"> <!-- 將StringHttpMessageConverter的默認編碼設爲UTF-8 --> <bean class="org.springframework.http.converter.StringHttpMessageConverter"> <constructor-arg value="UTF-8"/> </bean> <!-- 將Jackson2HttpMessageConverter的默認格式化輸出設爲true --> <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="prettyPrint" value="false"/> </bean> </mvc:message-converters> <mvc:argument-resolvers> <bean class="com.it.mds.iweb.datatable.handler.IWebHandlerMethodArgumentResolver"/> <bean class="com.it.mds.mvc.RequestArgumentResolver"/> </mvc:argument-resolvers> </mvc:annotation-driven>
方案二.express
一、導入第三方的jackson包,jackson-mapper-asl-xxx.jar和jackson-core-asl-xxx.jar。
二、spring配置文件添加json
<mvc:annotation-driven/> <!-- 避免IE執行AJAX時,返回JSON出現下載文件 --> <bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/html;charset=UTF-8</value> </list> </property> </bean> <!-- 啓動Spring MVC的註解功能,完成請求和註解POJO的映射 --> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <ref bean="mappingJacksonHttpMessageConverter" /><!-- json轉換器 --> </list> </property> </bean>
方案三:mybatis
導入第三方的fastjson包,fastjson-1.1.34.jar
二、Spring配置文件添加mvc
<mvc:annotation-driven> <mvc:message-converters register-defaults="true"> <!-- 避免IE執行AJAX時,返回JSON出現下載文件 --> <bean id="fastJsonHttpMessageConverter" class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>application/json;charset=UTF-8</value> </list> </property> </bean> </mvc:message-converters> </mvc:annotation-driven>
方案四:app
1.須要導入 jackson-annotations-*.jar,jackson-core-.jar,jackson-databind-.jar
二、在spring中添加配置ui
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" /> <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"> <property name="messageConverters"> <list> <bean class="org.springframework.http.converter.StringHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/html; charset=UTF-8</value> <value>application/json;charset=UTF-8</value> </list> </property> </bean> <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/html; charset=UTF-8</value> <value>application/json;charset=UTF-8</value> </list> </property> </bean> </list> </property> </bean>
參考:
1.SpringMVC雜記(十七) HandlerMethodArgumentResolver接口應用example