Could not instantiate bean class [java.util.List]: Specified class is an interface] with root cause

最近项目中页面比较复杂,springMVC传参过程中遇到这样一个错误:Could not instantiate bean class [java.util.List]: Specified class is an interface] with root cause

经研究发现这是参数封装出了问题。

还原代码:

@RequestMapping("/test")
    public ModelAndView test(List<OptionVo> ov){
        ModelAndView view = new ModelAndView("list");
        return view;
    }

VO对象:

public class OptionVo {

	private String name;
	private String options;
	private List<String> option;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getOptions() {
		return options;
	}

	public void setOptions(String options) {
		this.options = options;
	}

	public List<String> getOption() {
		return option;
	}

	public void setOption(List<String> option) {
		this.option = option;
	}
}

  可以看出,controller中参数List内封装的不是基本数据类型,而是一个对象,springMVC源码获取前台的参数是:request.getParameter("")来接收参数的,这样的话,封装参数时就出问题了。

解决办法:

将VO对象再进行封装:

public class Form {
    private List<OptionVo> o;

    public List<OptionVo> getO() {
        return o;
    }

    public void setO(List<OptionVo> o) {
        this.o = o;
    }
}

controller:

@RequestMapping("/test")
    public ModelAndView test(Form formm){
        ModelAndView view = new ModelAndView("list");
        return view;
    }

前台页面:

<input type="text" name="o[0].name" value="爱好">
        <input type="text" name="o[0].options" value="爱好">
        <input type="hidden" name="o[0].option" value="1">
        <input type="hidden" name="o[0].option" value="2">
        <input type="hidden" name="o[0].option" value="3">
        <input type="hidden" name="o[0].option" value="4">
        <hr>
        <input type="text" name="o[1].name" value="哈哈">
        <input type="text" name="o[1].options" value="爱好2">
        <input type="hidden" name="o[1].option" value="1">
        <input type="hidden" name="o[1].option" value="2">
        <input type="hidden" name="o[1].option" value="3">
        <input type="hidden" name="o[1].option" value="4">
        <hr>

时间: 2024-11-05 16:20:58

Could not instantiate bean class [java.util.List]: Specified class is an interface] with root cause的相关文章

【FAQ】SpingMVC实现集合參数(Could not instantiate bean class [java.util.List])

需求,要求批量新增或者改动一个List,在Spring MVC中是不支持以下代码的写法 @RequestMapping(value = "/update", method = RequestMethod.POST) public String update(List<ProductCollocation> productCollocations ,HttpServletRequest request, RedirectAttributes redirectAttribute

org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [java.util.List]: Specified class

错误:org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [java.util.List]: Specified class 这是我使用Spring MVC的时候出的错误,在前台将多个信息的id封装成一个集合后传递到控制层,向让这些id自动映射到控制层方法的参数上 我这个参数是一个List类型,因为Spring MVC是不能这样直接映射到集合类型的参数的,我们需要将这个集合类

【spring mvc】后台spring mvc接收List参数报错如下:org.springframework.beans.BeanInstantiationException: Failed to instantiate [java.util.List]: Specified class is an interface

后台spring mvc接收List参数报错如下:org.springframework.beans.BeanInstantiationException: Failed to instantiate [java.util.List]: Specified class is an interface org.springframework.beans.BeanInstantiationException: Failed to instantiate [java.util.List]: Speci

Java Concurrency - java.util.concurrent API Class Diagram

摘自: www.uml-diagrams.org Here we provide several UML class diagrams for the Java™ 7 java.util.concurrent package. Several java.util.concurrent.* packages introduced with version 5.0 of the Java platform added high-level concurrency features to the Ja

dubbox部署到jdk1.7环境,启动:java.lang.NoSuchMethodError: java.util.concurrent.ConcurrentHashMap.keySet()

本地用jdk1.8编译的服务提供端war包,部署到环境报错了: INFO: Initializing Spring root WebApplicationContext [16/08/17 05:14:54:054 CST] localhost-startStop-1 INFO context.ContextLoader: Root WebApplicationContext: initialization started [16/08/17 05:14:54:054 CST] localhos

java.sql.date与java.util.date区别以及数据库中插入带时分秒的时间

java.sql.Date,java.sql.Time和java.sql.Timestamp三个都是java.util.Date的子类(包装类). java.sql.Date是java.util.Date的子类,是一个包装了毫秒值的瘦包装器,允许 JDBC 将毫秒值标识为 SQL DATE 值.毫秒值表示自 1970 年 1 月 1 日 00:00:00 GMT 以来经过的毫秒数. 为了与 SQL DATE 的定义一致,由 java.sql.Date 实例包装的毫秒值必须通过将时间.分钟.秒和毫

tomcat中java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException錯誤

當我加載web應用時,發現會有java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException:這個錯誤. 原來是我的web.xml中出現了問題. 下面是我的web.xml文件部分內容. <servlet> <servlet-name>regeister</servlet-name> <servlet-class>org.eblly.bean.Register<

java.util.TimeZone 新加方法 getTimeZone(ZoneId zoneId) 导致的问题

最近接受的项目中用spring配置了一个TimeZone对象: <bean id ="timeZone4Job" class="java.util.TimeZone" factory-method="getTimeZone"> <constructor-arg value="GMT+8:00"/> </bean> 以前是运行在 1.7 中,没什么问题.今天换了1.8的sdk,spring开始

解决nested exception is java.lang.IllegalArgumentException: No converter found for return value of type: class java.util.ArrayList问题

一.背景 最近闲来无事,想自己搭建一套Spring+SpringMVC+Mybatis+Mysql的环境(搭建步骤会在以后博客中给出),结果运行程序时,适用@ResponseBody注解进行返回List<对象>的json数据时出现了:nested exception is java.lang.IllegalArgumentException: No converter found for return value of type: class java.util.ArrayList错误,就细细