gpt4 book ai didi

java - Spring MVC 表单提交绑定(bind)动态嵌套属性

转载 作者:太空宇宙 更新时间:2023-11-04 08:17:04 27 4
gpt4 key购买 nike

我没有主意,只能求助于社区专家。我正在使用 Hibernate 单表继承,这插入我朝这个方向发展。

我有一个 BaseEntity 类,其中有许多使用鉴别器的子类。我使用 Spring MVC 带注释的 Controller 进行 CRUD 操作,并使用 Spring 表单标签进行 View 的 JSP。

我有一个 backingForm,其中包含表单使用的子类实体。为了节省大量重复代码,我有一个 common.jsp,其中包含 BaseEntity 中的字段,然后是特定于每个子类的其他 JSP。这些其他 JSP 包括 common.jsp。我可以通过查看 pathVariable 来很好地显示数据,然后加载正确的子类,将其添加到表单中。表单提交和 Spring 的 DataBinding 让我感到困惑。任何人都可以建议一个好方法来允许 Spring 动态发布到特定的嵌套属性。可以将其想象为在表单提交上使用多态性。我知道这可能看起来令人困惑,但 idf 任何人都尝试过这个,它应该很有意义:-)。这与动态列表绑定(bind)(自动填充)无关,这是非常不同的。

感谢您的任何见解。

最佳答案

在带注释的 Controller 中,您可以作为单独的方法执行:

@ModelAttribute("backingObject")
public SuperClass getBackingObject(HttpRequest request //etc) {
//determine value of your path variable
//create appropriate subcass
return subClassInstanceForBinding;
}

因此,当 spring 进行绑定(bind)时,它将在您放置在那里的模型映射中找到“backingObject”并使用它,而不是寻找构造函数。

关于java - Spring MVC 表单提交绑定(bind)动态嵌套属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10233561/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com