StringHttpMessageConverter Spring MVC 返回前端中文乱码问号问题

记录学习遇到的问题

后端用的maven web项目 框架 Spring Mybatis Spring MVC
前端是vue项目

问题:用axios在后台取值返回中文是问号
在这里插入图片描述

控制台资源看编码是ISO-8859-1 因为MVC默认编码是这个(小白 应该是的吧。。还是自己百度看到的)
在这里插入图片描述

然后遇到问题后百度各路大神解答
有在方法前面的@RequestMapping加上produces属性
如:

	@RequestMapping(value = "selectAll",produces = "application/json;charset=utf-8")
	@ResponseBody
	public String selectAll(User user) {
		System.out.println("Come in SelectAll");
		return JSON.toJSONString(userService.selectAll(user));
	}

在这里插入图片描述

这样的话可以 但是每个方法都要加上这个东西
甚是麻烦(烦死了)
所以···我不甘心 肯定有配置文件解决的这个方法
但是找了好多大神的解答
试了好几个配置都是不行的
虽然······但是·······
终于······在我历史记录100+的时候终于找到了!!

在MVC配置文件这样加这个东西

	<mvc:annotation-driven>
		<mvc:message-converters register-defaults="true">
			<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>

放的位置不知道有没有顺序 反正我是这样放的
在这里插入图片描述
然后页面会报错
在这里插入图片描述
在上面加上这些

xmlns:mvc="http://www.springframework.org/schema/mvc"


http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd

就这里
在这里插入图片描述
然后运行会报错的 还缺少jar包
在这里插入图片描述
com.fasterxml.jackson.databind.exc.InvalidDefinitionException

还要下载一个jar包(不知道为啥我的maven下载报Missing artifact)
fasterxml.jackson.databind ←就它
然后我去https://mvnrepository.com/这里下载的
我把pom配置放这儿(因为去这个网站也给的这个)
在这里插入图片描述

<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
		<dependency>
		    <groupId>com.fasterxml.jackson.core</groupId>
		    <artifactId>jackson-databind</artifactId>
		    <version>2.13.0</version>
		</dependency>

整完了 但是!!
在这里插入图片描述
我数据没了。。。。
在axios输出看下
在这里插入图片描述
很明显 他成字符串了
虽然······但是······他中文出来了
在这里插入图片描述
以为啥 因为我返回的是JSON.toJSONString()
在这里插入图片描述
然后把String去掉就好了

	@RequestMapping("selectAll")
	@ResponseBody
	public Object selectAll(User user) {
		System.out.println("Come in SelectAll");
		return JSON.toJSON(userService.selectAll(user));
	}

就这样 方法的返回值类型也要改
直接把produces干掉
在这里插入图片描述
该说不说 热巴真好看!!!

然后
在这里插入图片描述
完美!!!!

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值