Bootstrap

解决No converter for [class java.util.ArrayList] with preset Content-Type ‘null‘问题

一、出现问题

在这里插入图片描述

二、解决方法

首先:

  • 1、检查Maven依赖是否成功导入,记得clear后刷新!
  • 2、更新lib目录,确保加入Maven包

如果不是上面两步出错的话,那我准备的方法可就用上了哦!

1、方法一:

在Spring MVC配置文件中,加上这行代码: <mvc:annotation-driven/>

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="
       http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/mvc
       http://www.springframework.org/schema/mvc/spring-mvc.xsd
">

    <!--
       支持mvc注解驱动:
       在spring中一般采用@RequestMapping注解来完成映射关系
       要想使@RequestMapping注解生效
       必须向上下文中注册DefaultAnnotationHandlerMapping
       和一个AnnotationMethodHandlerAdapter实例
       这两个实例分别在类级别和方法级别处理。
       而annotation-driven配置帮助我们自动完成上述两个实例的注入。
    -->
    <mvc:annotation-driven/>

</beans>

经实测,方法一可行!
若不行的话,降低依赖版本,再次测试!
真的还不行的话,看方法二!

2、方法二:

创建对象映射器、解析成需要的格式!

package com.jin.controller;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.jin.pojo.User;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.ArrayList;
import java.util.List;


@RestController
public class UserController2 {

    @RequestMapping(value = "/j2",produces = "application/json;charset=utf-8")
    public String json2() throws JsonProcessingException {

		//创建对象映射器
        ObjectMapper mapper = new ObjectMapper();
        
        ArrayList<User> list = new ArrayList<>();

        User user1 = new User("酷小亚","14","男");
        User user2 = new User("张三","15","男");
        User user3 = new User("李四","16","男");
        User user4 = new User("王五","17","男");
        list.add(user1);
        list.add(user2);
        list.add(user3);
        list.add(user4);

		//将对象解析成为json格式
        String str = mapper.writeValueAsString(list);
        return str;

    }
}
;