给定一个类:public class Foo { private List<Bar> bars = new ArrayList<>(); //getter and setter}Bar看起来像这样的抽象类型在哪里:abstract class Bar { private TypeEnum type; // getters and setters}并且给定一个应该提交具体实例的 Thymeleaf 模板(来自包含的自定义片段,具体取决于type枚举值),提交时会收到以下异常无法实例化 [com.example.Bar]:它是一个抽象类吗?嵌套异常是 java.lang.InstantiationException。有没有办法指定实例所属的具体类,以便可以创建正确的实例?
1 回答
郎朗坤
TA贡献1921条经验 获得超9个赞
您需要以某种方式将类型鉴别器从表单传递给控制器。„disc0=enum&...“ 有了这些信息,您可以在“@ModelAttribute”函数的帮助下实例化 Foo 对象,该函数使用参数准备“bars”列表并返回“foo”实例。这将在实际合并请求处理程序方法中使用的“@ModelAttribute”参数之前发生。
public class MyCtrl {
@ModelAttribute(„foo“)
public Foo initFoo(Request or params) {
return builtFoo;
}
@RequestMapping(...)
public String submit(@ModelAttribute(„foo“) Foo foo) {
// use the inited and merged foo parameter
return templateName;
}
}
添加回答
举报
0/150
提交
取消