`
panqili2120
  • 浏览: 89073 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

SpringMVC中@ResponseBody对UTF-8的支持

阅读更多

 

由于org.springframework.http.converter.StringHttpMessageConverter中默认的编码为ISO-8859-1,而在使用@ResponseBody时SpringMVC会通过这个类对输出的内容进行编码,所以Ajax在SpringMVC的项目中会乱码...

 

于是解决方案:

 

------------------------------------------------------------------------------------------------------------------------

1. 皱眉修改源码, org.springframework.http.converter.StringHttpMessageConverter中第一行代码是这样的,所以你懂得...

public static final Charset DEFAULT_CHARSET = Charset.forName("ISO-8859-1");

 

 

2. 通过配置Bean进行依赖注入

 

Spring3.1的时候,只有像下面那样才可以正常设置UTF-8。。。注意要放在最上方,<mvc:annotation-driven />也不能在前面

 

<!--Spring3.1推荐使用RequestMappingHandlerAdapter -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
		<property name="webBindingInitializer">
			<bean class="com.zf.ms.web.MyWebBindingInitializer"></bean>
		</property>
		<property name="messageConverters">
			<list>
				<bean class="org.springframework.http.converter.StringHttpMessageConverter">
					<property name="supportedMediaTypes">
						<list>
							<value>text/html;charset=UTF-8</value>
						</list>
					</property>
				</bean>
			</list>
		</property>
	</bean>

 

 

另外还可以这样配置,但我在SpringMVC3.1中试了下,发现不行。。

<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
        <property name="messageConverters">
            <list>
                <bean id="stringHttpMessageConverter"
                      class="com.zf.ms.util.ConfigurableStringHttpMessageConverter">
                    <constructor-arg value="UTF-8"/>
                </bean>
            </list>
        </property>
    </bean>

 

 

1
0
分享到:
评论

相关推荐

    springMVC3使用@ResponseBody向浏览器返回 json,注意区分jar包前缀

    charset=UTF-8" ) @ResponseBody ----------------------------------------------------------------------------- &lt;!-- @ResponseBody() spring-mvc 3 xml 配置--&gt; &lt;!--处理 @ResponseBody 中文乱码...

    SpringMVC中解决@ResponseBody注解返回中文乱码问题

    总的来说,解决SpringMVC中`@ResponseBody`注解返回中文乱码问题的关键在于正确配置`HttpMessageConverter`,确保其支持UTF-8编码,并将这些配置放在`&lt;mvc:annotation-driven&gt;`元素之前。通过上述方法,可以有效地...

    Springmvc 4.x利用@ResponseBody返回Json数据的方法

    charset=UTF-8"。 ### 示例代码 ```java @RequestMapping(path="/something", method=RequestMethod.PUT) @ResponseBody public String helloWorld(){ return "HelloWorld"; } ``` 上述示例代码演示了如何使用@...

    springmvc-demo08-返回JSON数据.zip

    charset=UTF-8&lt;/param-value&gt; &lt;/init-param&gt; ... &lt;!-- Spring Boot 示例 --&gt; @Configuration public class WebConfig implements WebMvcConfigurer { @Override public void configureContentNegotiation...

    SpringMVC解决乱码

    这样,在使用@ResponseBody注解时,SpringMVC将使用UTF-8编码来编码响应体。 配置代码如下: ```xml &lt;value&gt;text/plain;charset=UTF-8 ``` 注意,在使用该方法时,需要将&lt;mvc:annotation-...

    springMVC资料

    charset=UTF-8"`来确保响应内容使用UTF-8编码。 "SpringMVC3"这个文件名可能是指SpringMVC 3.x系列的资料,这个系列引入了大量改进,包括增强的注解支持、异步处理能力、更高效的视图解析,以及对RESTful服务的支持...

    快速解决SpringMVC @RequestBody 用map接收请求参数的问题

    charset=UTF-8") @ResponseBody public String callback(@RequestBody Map, String&gt; params) { return null; } ``` 解决方法是使用 HttpServletRequest 的 getParameterMap() 方法来获取参数。例如: ```java @...

    Http请求传参SpringMVC接收参数详细解析

    charset=utf-8"`并序列化数据为JSON格式。 ```java @RequestMapping(method = POST, value = "/sensorTypeList") @ResponseBody public String sensorTypeList(@RequestBody SensorVO sensorVo) { // 处理逻辑 } ...

    SpringMVC第8讲:多视图支持

    charset=UTF-8"/&gt; ``` SpringMVC还提供了ModelAndView类,用于在控制器中返回视图和模型数据。例如: ```java @RequestMapping("/example") public ModelAndView handleRequest() { Map, Object&gt; model = new ...

    springmvc-restful

    charset=UTF-8`,以指定服务器返回数据的字符集。 3. **Spring MVC 过滤器**: 过滤器(Filter)是Servlet API的一部分,允许在请求被Controller处理之前或之后进行拦截和修改。在Spring MVC中,我们可以自定义...

    springMVC的action配置+ckeditor

    charset=UTF-8" language="java" %&gt; &lt;script src="ckeditor/ckeditor.js"&gt;&lt;/script&gt; CKEDITOR.replace('editor', { filebrowserUploadUrl: '/ckeditor/uploadImage', filebrowserPasteImageUrl: '/ckeditor/...

    Springmvc如何返回xml及json格式数据

    charset=utf-8"` 指定了返回的MIME类型为XML,并指定了字符集为UTF-8。 如果返回的是对象,Spring MVC会自动将其转换为XML,但需要注意的是,对象的属性需要有getter和setter方法,以便Spring能正确地序列化。为了...

    用ajax传递json到前台中文出现问号乱码问题的解决办法

    后来发现,因为在controller中返回json用了@ResponseBody,而spring源码中@ResponseBody 的实现类发现其默认的编码是 iso-8859-1,而项目用的编码为utf-8,所以传中文会出现乱码。 这里我使用了注解来解决: @...

    2020年SpringMVC面试题,看这篇就足够了

    在处理请求参数时,需要注意字符编码问题,因为Tomcat服务器默认使用ISO8859-1编码,而UTF-8更为普遍,因此在获取请求参数时通常需要进行编码转换。 SpringMVC的异常处理是通过定义异常处理器来统一管理全局异常。...

    解决SpringMvc后台接收json数据中文乱码问题的几种方法

    这通常是因为服务器默认的字符编码不支持UTF-8导致的。以下是两种解决方法: - 方式一:在Controller方法中手动转码 在接收到请求参数时,你可以使用`new String(bytes, "UTF-8")`的方式来转换字符串的编码。例如...

    解决SpringMVC接收不到ajaxPOST参数的问题

    charset=utf-8",那么请求体将被编码为JSON格式。 在SpringMVC中,如果使用@RequestBody注解接收参数时,需要将contentType设置为"application/json;charset=utf-8",否则将无法接收到参数值。例如: ```java @...

    SpringMVC 学习总结

    charset=UTF-8" pageEncoding="UTF-8"%&gt; &lt;!DOCTYPE html&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;Hello Page ${message} ``` 7. **运行应用:** - 启动服务器(如 Tomcat),访问应用 URL 测试是否成功...

    SpringMVC利用Ajax,JQuery交互Json

    charset=utf-8', data: JSON.stringify(sendData), success: function(response) { // ... }, error: function() { // ... } }); ``` 使用`JSON.stringify()`将JavaScript对象转换为Json字符串,并设置`...

    SpringMVC中Json数据格式转换

    charset=utf-8", data:'{"name":"测试商品","price":99.9}', success:function(data){ alert(data.name); } }); } ``` 在这个例子中,通过AJAX的POST方法向服务器发送JSON数据,并指定了请求头中的内容类型为...

    分享SpringMVC归纳

    &lt;param-value&gt;UTF-8&lt;/param-value&gt; &lt;/init-param&gt; &lt;filter-mapping&gt; &lt;filter-name&gt;encodingFilter&lt;/filter-name&gt; &lt;url-pattern&gt;/*&lt;/url-pattern&gt; &lt;/filter-mapping&gt; ``` - 对于GET请求,可以通过修改...

Global site tag (gtag.js) - Google Analytics