文档章节

spring boot 解决后台返回 json 到前台中文乱码之后出现返回json数据报错 500

陈守印
 陈守印
发布于 2018/06/15 18:31
字数 529
阅读 243
收藏 5

####问题描述

  • spring Boot 中文返回给浏览器乱码 解析成问号?? fastJson jackJson
  • spring boot 新增配置解决后台返回 json 到前台中文乱码之后,出现返回json数据报错:no convertter for return value of type
  • 注释掉解决中文乱码的问题之后返回对象json正常
  • Failed to write HTTP message: org.springframework.http.converter.HttpMessageNotWritableException: No converter found for return value of type: class www.it399.com.controller.file.ResultBean

####解决中文乱码的配置

@Configuration
@EnableWebMvc
@ComponentScan
public class MvcConfiguration extends WebMvcConfigurerAdapter {

    @Bean
    public HttpMessageConverter<String> responseBodyConverter(){
        StringHttpMessageConverter converter = new StringHttpMessageConverter(Charset.forName("UTF-8"));
        return converter;
    }

    @Override
    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
        super.configureMessageConverters(converters);
        //解决中文乱码
        converters.add(responseBodyConverter());
        //解决 添加解决中文乱码后 上述配置之后,返回json数据直接报错 500:no convertter for return value of type
        converters.add(messageConverter());
    }

}

####除了上述配置之后还有添加MappingJackson2HttpMessageConverter

 @Bean
    public MappingJackson2HttpMessageConverter messageConverter() {
        MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
        converter.setObjectMapper(getObjectMapper());
        return converter;
    }

注意:responseBodyConverter和MappingJackson2HttpMessageConverter如果分开配置要确保前者不被覆盖,不然就会出现返回springboot返回json正常,但是返回中文乱码,或者返回中文不乱吗,但是返回对象或者json异常。

####解决springboot范湖中文乱码和返回json 500错误的完整代码

/**
 * spring boot 解决后台返回 json 到前台出现中文乱码的问题
 * 在线助手博客 http://www.it399.com/blog/index.jsp
 */
@Configuration
@EnableWebMvc
@ComponentScan
public class MvcConfiguration extends WebMvcConfigurerAdapter {

    @Bean
    public HttpMessageConverter<String> responseBodyConverter(){
        StringHttpMessageConverter converter = new StringHttpMessageConverter(Charset.forName("UTF-8"));
        return converter;
    }


    @Bean
    public ObjectMapper getObjectMapper() {
        return new ObjectMapper();
    }


    @Bean
    public MappingJackson2HttpMessageConverter messageConverter() {
        MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
        converter.setObjectMapper(getObjectMapper());
        return converter;
    }



    @Override
    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
        super.configureMessageConverters(converters);
        //解决中文乱码
        converters.add(responseBodyConverter());
        //解决 添加解决中文乱码后 上述配置之后,返回json数据直接报错 500:no convertter for return value of type
        converters.add(messageConverter());
    }

}

本文同步发布在 在线助手-在线生成制作工具箱博客转载请注明来自 在线助手-在线生成制作工具箱博客频道spring boot 解决后台返回 json 到前台中文乱码之后出现返回json数据报错 500】,原文链接:http://www.it399.com/blog/web/201805081017

© 著作权归作者所有

陈守印
粉丝 0
博文 13
码字总数 4220
作品 0
深圳
程序员
私信 提问
springmvc 配置 messageConverters 和解决中文乱码 和 HttpMediaTypeNotAcceptableException

开始接触使用springmvc的时候, 返回controller 内容中文乱码。 百度一下,然后配置 messageConverters 加上 即解决了中文乱码。 假设我们不加上 json 数据的消息处理 比如 那么 如果 contro...

之渊
2018/12/22
78
0
解决:后台传值给 ajax 的中文都变成问号?

Java 后台,用的框架是 Spring + SpringMVC + MyBatis 我的原因是,要用 ajax 处理一个 POST 请求,然后传回来的中文就变成了“???” 看 Reponse Header 中的 charset 也都是 UTF-8,没问...

吃兔纸不吐毛
2017/10/25
387
0
解决spring-mvc @responseBody注解返回json 乱码问题

在使用spring-mvc的mvc的时候既享受它带来的便捷,又头痛它的一些问题,比如经典的中文乱码问题。现在是用json作为客户端和服务端 的数据交换格式貌似很流行,但是在springmvc中有时候会因为...

刘志成
2013/11/15
30.4K
9
SpringBoot版本升级引起数据显示出错及排查

描述 原来环境 Spring boot1.5.3 fastjson pojo中配置 测试结果 升级2.0.6测试结果 排查解决 经过来回更换版本等几个小时的尝试后,分析结果:Spring Boot默认采用jackson作为解析,原因可能...

豫华商
07/09
35
0
【转】Ajax响应中文乱码 [SpringMVC使用@ResponseBody处理Ajax请求]

Spring3.0 MVC @ResponseBody 的作用是把返回值直接写到HTTP response body里。 Spring使用AnnotationMethodHandlerAdapter的handleResponseBody方法, AnnotationMethodHandlerAdapter使用r......

一堆BUG
2013/09/10
792
0

没有更多内容

加载失败,请刷新页面

加载更多

从AnnotationTransactionAspect开始rushSpring事务

0. Spring 事务 with LTW 0.1. Spring 事务 With LTW的原因: Pure Proxy-base mode有缺陷,其失效原因分析及使用方法及运行机制(LoadTimeWeaverBeanDefinitionParser和 AspectJWeavingEnable......

Aruforce
11分钟前
2
0
mac 安装protobuf 2.5.0

下载安装包 目前protobuf的最新版本是3.9.1,但是hadoop等好多框架依然依赖的是2.5.0,因此,最好不要安装最新的。 https://github.com/protocolbuffers/protobuf/releases/tag/v2.5.0 编译安...

hexiaoming123
15分钟前
3
0
Qt编写自定义控件52-颜色下拉框

一、前言 这个控件写了很久了,元老级别的控件之一,开发之初主要是自己的好几个项目要用到,比如提供一个颜色下拉框设置对应的曲线或者时间颜色,视频监控项目中经常用到的OSD标签设置,这个...

飞扬青云
23分钟前
2
0
Shell脚本应用 – for、while循环语句

通过Shell脚本应用(二)学习到了if条件条件语句的使用方法等。Shell作为一种脚本编程语言,同样了包含了循环,分支等其他程序控制结构,从而能够轻松完成更加复杂、强大的功能。我们今天就来...

Linux就该这么学
28分钟前
3
0
Sqoop之导入到Hive时特殊字符导致数据变乱

问题是这样的: Sqoop从关系型数据库导入数据到Hive时,发现数据量增多了,查找之后发现是由于源数据中含义\r\t\n特殊字符的数据,这样Hive遇到之后就将其视为换行,所以导入到Hive后数据条数...

克虏伯
29分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部