错误:没有预设内容类型为“null”的[class com.defei.sms.result.result]的转换器
网上解决办法:
1.Result这个类没有getter\setter方法,在类里添加上该方法或者加lombok的@Data注解在类上
2.说是缺少json转换包,引入以下包
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.12.2</version>
</dependency>
基于以上的解决方法,我都试了,没用。。。。因为我本身是有@Data注解的,也引用了json转换包,虽然是fastjson包。
我报以上错误的真正的原因出在Controller类里:
说明:我的controller类的注解是@Controller
以下是我原方法的写法
@RequestMapping(value = "currentDepartmentWarehouse", produces ={"text/html;charset=UTF-8"})
@ResponseBody
public Result currentDepartmentWarehouse() {
return warehouseService.currentDepartmentWarehouse(); }
正确写法应该是
@RequestMapping(value = "currentDepartmentWarehouse", produces ={"application/json";charset=UTF-8"})
@ResponseBody
public Result currentDepartmentWarehouse() {
return warehouseService.currentDepartmentWarehouse(); }
错误原因:由于方法是引用@ResponseBody注解,表示返回的是字符串,而此时要把@RequestMapping中的produces的值改为application/json才不会报错,如果是text/html则表示跳转到某个页面,前端无法解析为JSON字符串。
本文讲述了在使用@Controller的Spring MVC控制器中,如何修复因produces设置为text/html导致的`Result`对象无法转换为JSON的问题。作者分享了解决方案,包括添加getter/setter方法或使用Lombok的@Data,以及调整produces的MIME类型为application/json。

1万+

被折叠的 条评论
为什么被折叠?



