解決Spring中ResponseBody返回中文亂碼問題
1.在xml中配置HttpMessageConverter
使用HttpMessageConverter介面的相關實現類。我們先看配置檔案中的配置資訊。
<!--處理請求返回json字串的中文亂碼問題-->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter" >
<property name="messageConverters">
<list>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter" />
<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>
</list>
</property>
</bean>
<properties>
<jackson.databind-version>2.6.5</jackson.databind-version>
<spring.version>4.1.3.RELEASE</spring.version>
</properties>
<!--jackson-->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson.databind-version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>${jackson.databind-version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>${jackson.databind-version}</version>
</dependency>
注意:一定要放到<mvc:annotation-driven />的上面,否則不會生效。
2.使用<mvc:message-converter>
還有一種方式是在SpringMVC的配置檔案中的<mvc:annotation-driven>中加入<mvc:message-converters>的配置。具體配置內容如下:
<!-- SpringMVC註解驅動 -->
<mvc:annotation-driven>
<mvc:message-converters>
<bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"/>
<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>
</mvc:message-converters>
</mvc:annotation-driven>
注意:始用這種配置的時候,需要去掉RequestMappingHandlerMapping、RequestMappingHandlerAdapter或者DefaultAnnotationHandlerMapping、AnnotationMethodHandlerAdapter的Bean配置,要不然可能會不生效。
另外:對於請求對映處理類返回型別可以是String也可以是Object(如果Object是JavaBean的話,SpringMVC會用Jackson來轉換成json字串).例子如下:
//直接返回物件
@RequestMapping(value = "testValidtor.do")
@ResponseBody
public Object testPersonalValidtor(@Valid PersonScope personScope, BindingResult bindingResult){
if(bindingResult.hasErrors()){
StringBuffer sb = new StringBuffer();
for(ObjectError objectError : bindingResult.getAllErrors()){
sb.append(((FieldError)objectError).getField() +" : ").append(objectError.getDefaultMessage());
}
return sb.toString();
}else{
return personScope;
}
}
相關文章
- Spring--SpringMVC3.1的ResponseBody返回字串亂碼問題解決SpringMVC字串
- SpringMVC 使用@ResponseBody返回json 中文亂碼SpringMVCJSON
- 解決plsql中中文亂碼問題SQL
- 解決中文亂碼問題
- java中解決request中文亂碼問題Java
- Spring MVC3返回JSON資料中文亂碼問題解決(轉)SpringMVCJSON
- MySql中文亂碼問題解決MySql
- Jmeter 解決中文亂碼問題JMeter
- Java 解決中文亂碼問題Java
- RDSSQLSERVER解決中文亂碼問題SQLServer
- 解決MySQL中文亂碼問題MySql
- URL地址中的中文亂碼問題的解決
- 解決URL請求中的中文亂碼問題
- springmvc 解決中文亂碼問題SpringMVC
- js解決url中文亂碼問題JS
- Ubuntu中解決pdf中文亂碼或不顯問題Ubuntu
- SpringMvc解決Restful中文亂碼問題SpringMVCREST
- python 中文亂碼問題解決方案Python
- 讀mysql中文亂碼問題解決方法MySql
- DES加密中文亂碼問題的解決加密
- Jenkins Git 中文亂碼問題解決JenkinsGit
- CentOS中文亂碼問題的解決方法CentOS
- C# 解決httplistener querystring 中文亂碼、返回json中文格式亂碼C#HTTPJSON
- 解決mac 中的myeclipse控制檯中文亂碼問題MacEclipse
- shell指令碼中文註釋亂碼問題(解決)指令碼
- 雲伺服器中文亂碼問題解決伺服器
- SqlServer資料庫中文亂碼問題解決SQLServer資料庫
- Sublime Text 3 中文亂碼問題的解決
- filezilla裡怎麼解決中文亂碼問題
- oracle 輸出中文亂碼問題解決方案Oracle
- iOS 解決列印 NSDictionary 時,中文亂碼問題iOS
- 解決zabbix圖形化中文亂碼問題
- 解決Url帶中文引數亂碼問題
- requests請求返回內容 中文亂碼問題
- ROS中解決中文亂碼ROS
- Spring MVC 中文編碼亂碼解決SpringMVC
- java中亂碼問題解決方法Java
- 在linux中安裝mysql並解決中文亂碼問題LinuxMySql