0

我明白这个问题。List 是一个 Spring 不知道要实例化什么的接口。一种解决方案是让我的控制器(和服务)返回一个 ArrayList。我真的很想避免这种情况。如何才能做到这一点?

SEVERE: Servlet.service() for servlet [Spring MVC Dispatcher Servlet] in context with path threw exception [Request processing failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [java.util.List]: Specified class is an interface] with root cause
org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [java.util.List]: Specified class is an interface


public @ResponseBody
    List<Preference> getPreferences(@PathVariable Long userId, List<Preference> preferences, ModelMap data) {
4

1 回答 1

1

在你尝试解决你的问题之前,想想你期望什么样的解决方案?您想将List一些对象编组为 JSON。这个 JSON 应该是什么样子?如果您要先编写测试,您会在断言中添加什么?

提示:这不是一个有效的 JSON

[1、2、3、4、5]

这也不是:

[{a: 1}, {b: 2}]

长话短说:您需要一个对象包装列表,以将其编组为 JSON 和 XML:

{array: [1, 2, 3, 4, 5]}

话虽如此,只需将您的列表包装在一些简单的对象中:

class Wrapper {

    private List<Preference> preferences;

}

public @ResponseBody Wrapper getPreferences(/*...*/)

请注意,Wrapper类名被丢弃,但preferences将使用字段名。

于 2012-09-28T16:52:08.943 回答