springMVC浏览器接受json报406错误的解决方法

本文记录了解决Spring MVC中JSON序列化问题的过程。在访问返回对象的方法时遇到406错误,通过配置JSON模板成功解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这个错误还真难搞,头一次遇见还真没有什么好办法解决,上网找了很多资料,一一试过也不能很好的解决,最后经过朋友,同事一起努力,终于征服了.留下笔记,供大家参考:

1.我后台测试代码如下:

@RequestMapping("/json")
public @ResponseBody
String json() {
	return "this is json";
}

@RequestMapping("/json2")
public @ResponseBody
List<User> json2() {
	List<User> users = new ArrayList<User>();
	User u = new User();
	u.setAccount("aa");
	users.add(u);
	return users;
}

在浏览器访问这两个方法时,只有json正确,而json2就报406,说明spring没有处理好对象序列化成json的问题,最后我通过log4j打印的日志,也清晰的看到他返回的格式并非json格式.既然格式错误了,浏览器当然接受不了数据,原因就在此了。

2.知道了原因,于是就上网搜了.网上有人说mvc的xml没有加这个配置

<!-- 开启注解 -->
<mvc:annotation-driven />


但是我项目早就有了,固然不是问题答案

另外一种是说要配置json模板,觉得这个靠谱,于是乎就学着配置.....终于找到问题了。

 <!-- 避免IE执行AJAX时,返回JSON出现下载文件 -->
	<bean id="mappingJacksonHttpMessageConverter"
		class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
		<property name="supportedMediaTypes">
			<list>
				<value>text/html;charset=UTF-8</value>
			</list>
		</property>
	</bean>

	<!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 -->
	<bean
		class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
		<property name="messageConverters">
			<list>
				<ref bean="mappingJacksonHttpMessageConverter" /><!-- json转换器 -->
			</list>
		</property>
	</bean>

 

转载于:https://my.oschina.net/wangdaoliang/blog/816058

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值