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
  • 相关阅读:
    iscroll在iphone浏览器上闪动的BUG
    Emmet (ZenCoding) 缩写语法
    jqmobi快速开始(翻译)
    前端资源站点
    DOM Storage全解析
    html5离线应用
    XML的浏览器解析方案,正在尝试 。
    用 JavaScript来判断浏览器的种类
    delphi7判断字符串的组成
    没想到手机发邮件要占用那么大的空间
  • 原文地址:https://www.cnblogs.com/blog411032/p/6091476.html
Copyright © 2011-2022 走看看