• 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
  • 相关阅读:
    如何突破单库性能瓶颈?
    高性能数据库表该如何设计?
    高性能索引该如何设计?(下)
    高性能索引该如何设计?(上)
    MySQL体系结构与存储引擎
    动态ViewPager导航页面
    ViewPager图片轮转带点的
    手动图片横向轮播
    安卓布局中下拉列表框的实现
    安卓中adapter的应用
  • 原文地址:https://www.cnblogs.com/blog411032/p/6091476.html
Copyright © 2020-2023  润新知