本文主要是介绍如何解决Spring MVC中响应乱码问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
《如何解决SpringMVC中响应乱码问题》:本文主要介绍如何解决SpringMVC中响应乱码问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教...
Spring MVC最新响应中乱码解决方式
以前的解决办法
<!--启用包扫描--> <context:component-scan base-package="com.mufeng"/> <!--放行静态文件--> <mvc:default-servlet-handler/> <!--开启SpringMVC注解开发并解决乱码问题--> <mvc:annotation-driven&编程gt; <mvc:message-converters> <bean class="owww.chinasem.cnrg.springframework.http.converter.StringHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <!--通过对StringHttpMessageConverter类的List做添加,修改响应的编码--> <value>text/plain;charset=UTF-8</value> </list> </property> </bean> </mvc:message-converters> </mvcChina编程:annotation-driven>
这是比较通用的一种方法
但是它有一种缺点,就是你响应一种数据添加一种,比较麻烦。而且在之前的版本中默认的响应类型为text/html;charset=ISO-8编程859-1
,且其被final关键字修饰,无法进行修改。
但是在5.2.19.RELEASE之后的版本中,通过阅读源码可知:
StringHttpMessageConverter
的父类AbstractHttpMessageConverter<T>
中有了这样一行代码:
public abstract class AbstractHttpMessageConvepythonrter<T> implements HttpMessageConverter<T> { ..... @Nullable private Charset defaultCharset; .....
虽然它默认的编码集还是ISO-8859-1
,但是它已不再被final修饰,这就意味着我们可以在Spring配置文件中直接对其进行注入,修改Spring http响应的默认编码集。
代码如下:
<!--解决乱码问题--> <mvc:annotation-driven> <mvc:message-converters> <bean class="org.springframework.http.converter.StringHttpMessageConverter"> <property name="defaultCharset"> <value>UTF-8</value> </property> </bean> </mvc:message-converters>
这种方法更简洁高效,而且通过此方法我们不需要在前端代码中处理响应时担心后端穿过来的编码集错误。
总结
这篇关于如何解决Spring MVC中响应乱码问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!