如何使用 struts 2 迭代器迭代后为表中的元素设置唯一 id



我正在使用 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>

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

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

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

对于您的代码:

<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 了。

使用迭代器的状态 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>

最新更新