0

我正在使用 struts 迭代器标记迭代列表,如下所示。

<s:iterator var="listItem" value="userMasterActivityDTOList" status="userStatus">
<tr>
    <td width="10%"><s:textfield  name="regIns"  value="%{#listItem.regIn}" /></td>
    <td width="10%"><s:textfield name="regOuts"  value="%{#listItem.regOut}" /></td>
    <td width="10%"><s:textfield name="regDiffs"  value=""/></td> 
        </tr>
</s:iterator>

迭代后,我希望每行的 regIns 和 regOuts 文本字段的值用于计算 regDiff。问题是我无法为每行中的这些文本字段设置唯一 ID,以便我可以在 javascript 中识别它们。

如何为每个行元素设置唯一 ID?

4

2 回答 2

1

您可以使用迭代器状态的indexor属性:count

对于您的代码:

<s:iterator var="listItem" value="userMasterActivityDTOList" status="userStatus">
<tr>
    <td width="10%"><s:textfield  name="regIns" id="in%{#userStatus.count}" value="%{#listItem.regIn}" /></td>
    <td width="10%"><s:textfield name="regOuts" id="out%{#userStatus.count}" value="%{#listItem.regOut}" /></td>
    <td width="10%"><s:textfield name="regDiffs" id="diff%{#userStatus.count}" value="" /></td> 
        </tr>
</s:iterator>

我希望我在形式上是正确的,自从我做 JSP 以来已经有一段时间了。

于 2012-12-13T13:53:18.543 回答
0

使用迭代器的状态 COUNT 或 INDEX 方法。

计数从 1 开始,索引从 0 开始。

请参考:http ://struts.apache.org/2.3.4/struts2-core/apidocs/org/apache/struts2/views/jsp/IteratorStatus.html#getCount%28%29

 <s:iterator var="listItem" value="userMasterActivityDTOList" 
             status="userStatus">
    <tr>
        <td width="10%">
           <s:textfield  name="regIns" 
                  id="in_%{#userStatus.index}" value="%{#listItem.regIn}" />
        </td>
        <td width="10%">
           <s:textfield name="regOuts" 
                  id="out_%{#userStatus.index}" value="%{#listItem.regOut}" />
        </td>
        <td width="10%">
           <s:textfield name="regDiffs" 
                  id="diff_%{#userStatus.index}" value="" />
        </td> 
     </tr>
  </s:iterator>
于 2012-12-13T14:40:15.207 回答