`
andy_ghg
  • 浏览: 293339 次
  • 性别: Icon_minigender_1
  • 来自: 扬州
社区版块
存档分类
最新评论

StringHttpMessageConverter乱码问题的解决(Spring 3.2)

阅读更多
特别标注了是Spring 3.2,在网上搜了半天,很多配置应该是老版本的缘故,导致我配置了StringHttpMessageConverter转换编码始终不起作用(也有可能是我个人的错误)。后来在Stackoverflow找到了应该算是正确的配置方式,至少我的是可以运行了:


在Spring MVC的配置文件中配置以下:

<mvc:annotation-driven>
	<mvc:message-converters>
		<bean class="org.springframework.http.converter.StringHttpMessageConverter">
			<property name="supportedMediaTypes">
				<list>
					<value>text/plain;charset=UTF-8</value>
					<value>text/html;charset=UTF-8</value>
				</list>
			</property>
		</bean>
		<bean
			class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
			<property name="supportedMediaTypes">
				<list>
					<value>application/json; charset=UTF-8</value>
					<value>application/x-www-form-urlencoded; charset=UTF-8</value>
				</list>
			</property>
		</bean>
	</mvc:message-converters>
</mvc:annotation-driven>



第一个bean就是配置StringHttpMessageConverter的。

顺带说一下Ext JS的异常处理:

Ext.data.Store的请求结束会调用Connection的onComplete函数,因此如果要对后台自定义异常的统一前台处理,可以考虑修改该JS源码,例如我的修改后:

    onComplete : function(request) {
        var me = this,
            options = request.options,
            result,
            success,
            response;
        try {
            result = me.parseStatus(request.xhr.status);
        } catch (e) {
            // in some browsers we can't access the status if the readyState is not 4, so the request has failed
            result = {
                success : false,
                isException : false
            };
        }
        success = result.success;

        if (success) {
            response = me.createResponse(request);
            me.fireEvent('requestcomplete', me, response, options);
            Ext.callback(options.success, options.scope, [response, options]);
        } else {
            if (result.isException || request.aborted || request.timedout) {
                response = me.createException(request);
            } else {
                response = me.createResponse(request);
            }
            me.fireEvent('requestexception', me, response, options);
            if(!options.failure){
            	options.failure = function(result,request){
            		Ext.MessageBox.show({
            			title : "出错了",
            			multiline: true,
            			value : response.responseText,
            			msg : "操作失败,失败原因:",
						width : 300,
            			icon : Ext.MessageBox.ERROR,
            			buttons : Ext.MessageBox.YES
            		});
            	}
            }
            Ext.callback(options.failure, options.scope, [response, options]);
        }
        Ext.callback(options.callback, options.scope, [options, success, response]);
        delete me.requests[request.id];
        return response;
    },


注意里面的条件判断函数:
            if(!options.failure){
            	options.failure = function(result,request){
            		Ext.MessageBox.show({
            			title : "出错了",
            			multiline: true,
            			value : response.responseText,
            			msg : "操作失败,失败原因:",
						width : 300,
            			icon : Ext.MessageBox.ERROR,
            			buttons : Ext.MessageBox.YES
            		});
            	}
            }


当然,这里只是我简单的处理了一下,在实际开发中还要进一步的进行调整。
分享到:
评论
1 楼 我飞我是飞飞 2014-05-11  
StringHttpMessageConverter,我是3.1.1配置;用@responsebody注解返回的是字符串;如果不配置转换UTF-8后的是json对象,比如配置supportedMediaTypes utf-8后;"{Rows:[]}";如果按照默认的返回的是{Rows:[]};不知道新版本是不是这样的

相关推荐

    springboot乱码问题解决方案

    SpringBoot乱码问题解决方案 SpringBoot框架是一款流行的Java Web开发框架,但是在实际开发中,开发者经常会遇到乱码问题,导致项目无法正常运行。为了解决这个问题,本文将详细介绍SpringBoot乱码问题解决方案,并...

    乱码问题的解决

    "乱码问题的解决" 在 Web 开发中,乱码问题是常见的难题之一。乱码问题的出现主要是由于编码不一致引起的。编码不一致可能出现在多个方面,如页面编码、服务器编码、客户端编码、数据库编码等。在本文中,我们将...

    java乱码问题解决方法

    Java 乱码问题是 Java 开发中常见的问题之一,解决这个问题需要了解 Java 的编码方式、JSP 中文乱码问题、Tomcat 5.5 中文乱码问题、JDBC ODBC Bridge 的 Bug 及其解决方法、Solaris 下 Servlet 编程的中文问题及...

    log4j乱码问题解决办法

    - **修改全局编码设置**:有些情况下,修改`log4j.properties`文件中的编码设置仍然无法解决问题。这时,可以考虑修改JVM启动参数,添加`-Dfile.encoding=UTF-8`等类似的命令来设置全局的文件编码。 - **检查操作...

    乱码解决 乱码解决 乱码解决 乱码解决 乱码解决

    在IT领域,乱码问题是一个常见的困扰,尤其是在处理文本数据时。...乱码问题虽然麻烦,但只要了解其产生原因,掌握解决方法,就能有效地应对。在日常工作中,保持良好的编码习惯和规范的操作流程,是预防乱码的关键。

    java中文乱码问题解决

    "Java中文乱码问题解决" Java中文乱码问题是Java开发中常见的问题,尤其是在Web开发中,乱码问题会导致页面显示混乱,影响用户体验。解决乱码问题需要了解编码的基本原理和各种编码格式的区别。 编码的原因可以...

    JSP中文乱码问题解决办法

    JSP 中文乱码问题解决办法 JSP 页面中中文乱码问题是指在 JSP 页面中使用中文时,页面显示乱码的现象。这种问题的解决办法可以从多方面入手,包括设置页面的字符编码、使用 POST 方式提交表单、使用 GET 方式提交...

    qt乱码问题解决

    qt乱码问题解决

    oracle乱码问题解决

    总之,解决Oracle数据库的乱码问题需要深入理解字符集的工作原理,确保所有环节从输入、存储到输出都保持字符集的一致性。在处理中文数据时,选择支持汉字的字符集如GBK或UTF-8尤为重要,以确保数据的准确显示和处理...

    解决Ubuntu和Windows的文件乱码问题

    本文详细介绍了如何解决Ubuntu和Windows在处理文件时发生的乱码问题。 首先,我们需要了解文件乱码的原因。Windows系统中的许多纯文本文件(包括压缩文件)默认使用GBK编码,这是一种针对中文字符的扩展字符集。当...

    properties文件文中乱码问题解决.doc

    Properties 文件文中乱码问题解决 Properties 文件文中乱码问题解决是指在使用 Struts 框架进行国际化操作时,对于中文资源文件的处理问题。在 Properties 文件中,中文字符可能会变成乱码,这是因为 Eclipse 中的...

    Java开发乱码问题解决方法汇总

    Java开发乱码问题解决方法汇总 Java开发中乱码问题是非常常见的问题之一,而解决这些问题需要具备一定的技术知识和经验。...如果读者在实际开发中遇到乱码问题,可以尝试使用这些方法来解决问题。

    FORM表单中文乱码问题分析与解决

    FORM表单中文乱码问题分析与解决 在 Web 开发中,中文乱码问题是一个常见的问题,尤其是在FORM表单传递参数时。这个问题的根本原因是对中文的编码与解码方式不一致。我们可以理解为对中文的加密与解密的密钥不一致...

    spring注解出现中文乱码

    ### Spring框架中注解出现中文乱码的问题解析与解决方案 #### 问题背景 在Spring框架的应用开发中,尤其是在处理HTTP请求时,经常会遇到通过JSON格式传递数据的情况。然而,在某些场景下,开发者可能会遇到中文...

    soapUI输入中文显示为乱码,响应报文中文乱码问题解决方法.txt

    soapUI输入中文显示为乱码 响应报文中文乱码问题解决方法

    Stata跨版本乱码问题解决方案

    Stata跨版本乱码问题解决方案,Stata跨版本乱码问题解决方案Stata跨版本乱码问题解决方案Stata跨版本乱码问题解决方案Stata跨版本乱码问题解决方案Stata跨版本乱码问题解决方案Stata跨版本乱码问题解决方案Stata跨...

    MySQL数据库系统中文乱码问题及解决方案.pdf

    MySQL数据库系统中文乱码问题及解决方案 MySQL数据库系统中文乱码问题是指在使用MySQL数据库系统时,中文字符在存储、传输和显示过程中出现乱码的问题。这种问题的出现是由于字符集和编码方式的不兼容所致。 在...

    struts中文乱码问题解决详细步骤

    解决这个问题通常涉及到编码设置的调整,下面将详细介绍两种方法来解决Struts中的中文乱码问题。 **方法一:配置Filter** 1. **添加过滤器**:首先,我们需要在Web应用的`web.xml`文件中添加一个`...

    Linux系统中文乱码解决完整方案

    * 使用 Putty 代替 Secure Shell Client 可以解决中文乱码问题,但不能彻底解决问题。 * 修改 Linux 系统的默认字符集可以彻底解决中文乱码问题。 * 安装 Linux 系统时,采用默认的英文安装,而不要使用中文。 * ...

    Linux乱码问题解决方案.docx

    本文将介绍 Linux 乱码问题的解决方案,包括安装 ibus 输入法、fcitx 输入法、解决 UTF-8 编码问题、解决 Flash 中的中文显示问题、解决 Java 程序中的中文显示问题等。 一、安装 ibus 输入法 在 Ubuntu 系统中,...

Global site tag (gtag.js) - Google Analytics