0

我有一张名为 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 中为所有行显示它们。

4

1 回答 1

0

SOLVED: I can use the index of the row to show as different sets in the JSP Instead of this: <form:input path="revRecov[${loop.index}].maxLength" size="15" maxlength="14" />inches</td>

used this:

<form:input path="revRecov[0].maxLength" size="15" maxlength="14" />inches</td>
<form:input path="revRecov[1].maxLength" size="15" maxlength="14" />inches</td>
于 2012-10-03T14:50:12.537 回答