我无法摆脱错误:
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>()
)。