为了账号安全,请及时绑定邮箱和手机立即绑定

Thymeleaf 提交抽象类型的集合

Thymeleaf 提交抽象类型的集合

波斯汪 2021-07-23 18:01:22
给定一个类: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;

  }

}


查看完整回答
反对 回复 2021-07-29
  • 1 回答
  • 0 关注
  • 169 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信