zoukankan      html  css  js  c++  java
  • 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>
    View Code
  • 相关阅读:
    事务四大特征:原子性,一致性,隔离性和持久性(ACID)
    解决“要登录到这台远程计算机,你必须被授予”
    SqlServer_查看SQLServer版本信息
    sed 查找文件的某一行内容
    linux echo命令的-n、-e两个参数
    在.Net中进行跨线程的控件操作(上篇:Control.Invoke)
    .NET性能优化方面的总结
    SQLSERVER2008 显示列信息,包含扩展属性
    C#4.0新特性:可选参数,命名参数,Dynamic
    浅谈.net中的params关键字
  • 原文地址:https://www.cnblogs.com/blog411032/p/6091476.html
Copyright © 2011-2022 走看看