gpt4 book ai didi

java - CRUD 接口(interface)对多个子类型使用一个 Controller

转载 作者:行者123 更新时间:2023-11-29 09:11:18 25 4
gpt4 key购买 nike

我正在尝试设置单个 CRUD Controller 和相关 View (JSP) 来处理同一父类(super class)的多个子类。每个子类都有一个 Controller / View 会导致大量复制/粘贴代码。我的第一个倾向是使用反射。

在另一个页面上,用户单击一个链接,该链接决定了要使用的操作和正确的子类。因此,在我的 Controller 中,我会让服务返回正确类型的实例化,然后对于 View ,我想显示和编辑所有字段名称和值。

这是我目前的新 Action :

// controller new action code
SubType sub = service.give_me_type(x);
List<Field> fields = new ArrayList<Field>();

fields.addAll(Arrays.asList(sub.getClass().getSuperclass().getDeclaredFields()));
fields.addAll(Arrays.asList(sub.getClass().getDeclaredFields()));

return new ModelAndView("/sub/form")
.addObject("fields", fields);


// view form.jsp
<form:form method="post" commandName="sub" cssClass="left">
<c:choose>
<c:when test="${not empty fields}">
<table>
<c:forEach items="${fields}" var="field">
<tr>
<td>${field.name}</td>
<td>value here</td>
</tr>
</c:forEach>
</table>
</c:when>
<c:otherwise>
...

我意识到将字段放在列表中无助于将对象连接到 View ,但我不确定下一步该尝试什么。有任何想法吗?谢谢。

编辑:我正在使用 Spring MVC

编辑:我正在考虑不要尝试将对象与 View 关联起来。将编辑/更新操作视为一个有趣的案例,在编辑时我将从我的对象加载我的列表,然后在 View 中显示它;在创建时,我将根据用户在 View 中输入的列表中的值设置对象中的值。这会是下降解决方案吗?

最佳答案

我想建议您使用 Struts 或 Spring MVC 之类的东西,因为您会遇到很多问题,涉及映射到自定义字段类型、检查超父类(super class)的字段并授予对它们的访问权限等。

http://alasdoo.com/2010/08/binding-data-with-spring-forms/

关于java - CRUD 接口(interface)对多个子类型使用一个 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12309162/

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