我有一张名为 RR 的表。其中将有两组值。我的桌子是
CREATE TABLE "TSL_RR_CONFIGURATION"
(
"ID" NUMBER(19,0),
"TRK_TYPE" VARCHAR2(2 BYTE),
"MEASURE_SYSTEM" VARCHAR2(1 BYTE),
"MIN_LENGTH" NUMBER,
"MAX_LENGTH" NUMBER,
"MIN_WIDTH" NUMBER,
"MAX_WIDTH" NUMBER,
"MIN_HEIGHT" NUMBER,
"MAX_HEIGHT" NUMBER,
"MIN_WEIGHT" NUMBER,
"MAX_WEIGHT" NUMBER,
"LOCATION_ID" NUMBER(19,0),
"IDX" NUMBER DEFAULT 0,
"INSERTTIME" TIMESTAMP (6),
"UPDATETIME" TIMESTAMP (6),
CONSTRAINT "TSL_RR_CONFIGURATION_LOCA_FK1" FOREIGN KEY ("LOCATION_ID") REFERENCES "LOCATION" ("ID") ENABLE
)
使用 Hibernate 一对多关系:以下是我映射列表的代码
<list name="revRecov" table="TSL_RR_CONFIGURATION" cascade="all" access="field">
<key column="LOCATION_ID" />
<index column="idx" />
<one-to-many class="RevRecovery" />
</list>
使用 spring 表单标签在 JSP 表单中显示:
<c:forEach items="${location.revRecov}" var="item" varStatus="loop">
<c:choose>
<c:when test="${measureSys}">
<tr> <td><form:input path="revRecov[${loop.index}].trkType" /></td></tr>
<tr>
<td>Max Length:
<form:input path="revRecov[${loop.index}].maxLength" size="15" maxlength="14" />inches</td>
<td>Min Length:
<form:input path="revRecov[${loop.index}].minLength" size="15" maxlength="14" />inches</td>
</tr>
</c:when>
<c:otherwise>
<tr> <td><form:input path="revRecov[${loop.index}].trkType" /></td></tr>
<tr><td>Max Length:
<form:input path="revRecov[${loop.index}].maxLength" size="15" maxlength="14" />cm</td>
<td>Min Length:
<form:input path="revRecov[${loop.index}].minLength" size="15" maxlength="14" />cm</td></tr>
</c:otherwise>
</c:choose>
</c:foreach>
使用<c:when test>
标签以英寸或厘米为单位显示值。我的列表有类似的值
"97" "120" "5"
"12" "400" "1"
如果是 97,我必须显示一个标签为包裹,对于 12,我应该有托盘。即使我验证它也会有问题,因为两行都将具有不同的 Max 和 Min 值集。
所以,我在想,如果我可以将该列表分成两个不同的列表,然后将其传递给 JSP,我也可以进行验证。
实现它的最佳方案是什么?如果我分成两个列表,当我将它们保存到数据库时会出现问题吗?
任何建议都非常感谢?
编辑:在我的情况下,它解决了 JSP 中不同集合的问题,但它仍然在验证一个问题,如果我有超过 2 行,我不能使用索引在 JSP 中为所有行显示它们。