我有一张名为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 form标签以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中为所有行显示它们
答案 0 :(得分:0)
求助:我可以使用行的索引在JSP中显示为不同的集合
而不是:<form:input path="revRecov[${loop.index}].maxLength" size="15" maxlength="14" />inches</td>
使用了这个:
<form:input path="revRecov[0].maxLength" size="15" maxlength="14" />inches</td>
<form:input path="revRecov[1].maxLength" size="15" maxlength="14" />inches</td>