解决Spring中ResponseBody返回中文乱码问题
来源:互联网 发布:雪梨有几个淘宝店铺 编辑:程序博客网 时间:2024/05/21 11:06
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; } }
阅读全文
0 0
- 解决Spring中ResponseBody返回中文乱码问题
- 解决Spring MVC @ResponseBody返回中文字符串乱码问题
- 解决Spring MVC @ResponseBody返回中文字符串乱码问题
- 解决Spring MVC3.2 @ResponseBody返回中文字符串乱码问题
- 解决Spring MVC @ResponseBody返回中文字符串乱码问题
- 解决Spring MVC @ResponseBody返回中文字符串乱码问题
- 解决Spring MVC @ResponseBody返回中文字符串乱码问题
- 解决Spring MVC @ResponseBody返回中文字符串乱码问题
- 解决Spring MVC @ResponseBody返回中文字符串乱码问题
- 解决Spring MVC @ResponseBody返回中文字符串乱码问题
- 解决Spring MVC @ResponseBody返回中文字符串乱码问题
- 解决Spring MVC @ResponseBody返回中文字符串乱码问题
- 解决Spring MVC @ResponseBody返回中文字符串乱码问题
- 解决Spring MVC @ResponseBody返回中文字符串乱码问题
- 解决Spring MVC @ResponseBody返回中文字符串乱码问题
- 解决Spring MVC @ResponseBody返回中文字符串乱码问题
- 解决Spring MVC @ResponseBody返回中文字符串乱码问题
- 解决Spring MVC @ResponseBody返回中文字符串乱码问题
- jquery 防止change事件每次要刷新
- 《数据结构》实验二 线性表综合实验
- 数据库表和它的实体类
- Python csv模块的使用
- css 实现多行超出省略号代替
- 解决Spring中ResponseBody返回中文乱码问题
- JAVA学习笔记(12)--类和对象 详解(一)
- 第四章--电商项目-mysql实战
- 解析Dataworks中的运行和测试运行的区别
- 第5章--电商项目-mysql实战--数据库主从配置
- Activity生命周期再探
- 问题:rally create-verifier failed
- 为什么要对网站进行关键词的研究
- python闭包和装饰器