特别标注了是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
});
}
}
当然,这里只是我简单的处理了一下,在实际开发中还要进一步的进行调整。
分享到:
相关推荐
Ajax中文乱码问题解决方案
乱码解决 乱码解决 乱码解决 乱码解决 乱码解决 乱码解决 乱码解决
qt乱码问题解决
mysql乱码问题解决mysql乱码问题解决mysql乱码问题解决
struts中文乱码问题解决详细步骤(两种方法)
解决log4j乱码 在log4j.properties配置文件中可以指定字符编码: 下面这行配置指定了两个appender: log4j.rootCategory=INFO,appender1的名字,appender2的名字 下面这两行配置将上一行的两个appender的字符...
DB2数据库控制中心乱码问题解决方法集合 在英文操作系统上,经常会出现DB2数据库控制中心乱码现象。 第1种方法: 把D:\Program Files\IBM\SQLLIB\java\jdk\jre\lib\font.properties.zh中的filename.SimSun=SimSun...
Stata跨版本乱码问题解决方案,Stata跨版本乱码问题解决方案Stata跨版本乱码问题解决方案Stata跨版本乱码问题解决方案Stata跨版本乱码问题解决方案Stata跨版本乱码问题解决方案Stata跨版本乱码问题解决方案Stata跨...
最近发现乱码问题很烦,找了许多资料,自己总结了一些东西,主要是web页面的乱码,请大家指正
struts 中文乱码问题解决
中文乱码问题解决&&乱码问题解决&&中文乱码问题解决&&乱码问题解决
字符集的设置不当是影响ORACLE数据库汉字显示...本文从实践经验出发,介绍了ORACLE关于字符集的分类、构成及设定方法,分析了ORACLE数据库汉字显示乱码的常见现象及原因,并针对各种现象及原因提出了行之有效的解决办法
JSP中文问题解决办法,JSP页面传值,数据库等的中文乱码解决办法
解决JAVA编程中遇到的各种乱码问题,对乱码问题的分析
MySql乱码问题解决方法MySql乱码问题解决方法
J2ee应用中文乱码问题解决方案.doc
utf8解决JSP中文乱码问题 Tomcat 5.5中文乱码 JDBC ODBC Bridge的Bug及其解决方法 Solaris下Servlet编程的中文问题及解决办法
解决MySQL数据库乱码问题,以及命令行查表乱码问题
jquery+asp ajax 中文乱码问题解决文档
解决linux下oracle中文乱码问题,添加中文支持解决linux下oracle中文乱码问题,添加中文支持解决linux下oracle中文乱码问题,添加中文支持解决linux下oracle中文乱码问题,添加中文支持解决linux下oracle中文乱码...