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

时间:2012-12-13 13:48:45

标签: javascript struts2

我正在使用struts iterator标签迭代一个列表,如下所示。

<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中使用regIns和regOuts textfield的值来计算regDiff。事情是我无法为每行中的那些文本字段设置唯一的id,以便我可以在javascript中识别它们。 / p>

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

2 个答案:

答案 0 :(得分:1)

您可以使用iterator-status的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以来已经有一段时间了。

答案 1 :(得分:0)

使用Iterator的状态COUNT或INDEX方法。

Count是从1开始的,Index是从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>
相关问题