我无法摆脱错误:

  HTTP Status 500 - Request processing failed; nested exception is
org.springframework.beans.BeanInstantiationException:
Could not instantiate bean class [[Lmain.java.com.springapp.mvc.model.DSLR;]:
No default constructor found;
nested exception is java.lang.NoSuchMethodException: [Lmain.java.com.springapp.mvc.model.DSLR;.<init>()


我实际上在DSLR类中有构造函数。我的代码有什么问题?



此处代码> Spring MVC WebApp:http://goo.gl/ddhLg5



DSLR类,可能导致错误:

package main.java.com.springapp.mvc.model;

import org.springframework.beans.factory.annotation.Autowired;

    public class DSLR {


    public DSLR() {
    }


    private int dslrId;
    private String model;
    private int price;
    private String description;

    public int getDslrId() {
        return dslrId;
    }

    public void setDslrId(int dslrId) {
        this.dslrId = dslrId;
    }

    public String getModel() {
        return model;
    }

    public void setModel(String model) {
        this.model = model;
    }

    public int getPrice() {
        return price;
    }

    public void setPrice(int price) {
        this.price = price;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    @Override
    public String toString() {
        return "DSLR [dslr=" + dslrId + ", model=" + model
                + ", price=" + price+ ", description=" + description+"]";
    }
}




在实例化DSLR的DSLRServletController中,我进行了更改:

@ModelAttribute(“ dslrs”)DSLR dslrs []

变成:

@ModelAttribute(“ dslrs”)列出dslrs

它摆脱了先前的错误,并给出了:

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



在这里解决:Spring MVC web application: No default constructor found
如果有人可以在这里总结并回答,我很乐意接受!

最佳答案

为了使某些框架以这种方式初始化对象,即使没有执行任何操作,也必须提供default constructor(不带参数的构造函数)。

这是由于您可能在其中拥有另一个接受至少一个参数的构造函数。逻辑上,该库不知道要传递给传递给它的每个任意类的参数。

错误显示在java.lang.NoSuchMethodException: [Lmain.java.com.springapp.mvc.model.DSLR;.<init>()处:


NoSuchMethodException表示找不到运行时期望的方法(通过反射)
.<init>()是指构造函数(构造函数在技术上没有名称,因为它们始终只是类本身的名称;因此,JVM将它们称为<init>())。

09-03 18:28