增加struts2中的变量

时间:2012-10-29 06:07:35

标签: struts2 iterator increment

是否可以在struts 2中增加变量? 我有一组复选框,每个复选框都在不同的组下。我根据数据库中的组ID和自己的id命名复选框

enter image description here

// namesHead:list包含所有组ID和名称

// subHead:list包含所有子组id,Name和主组的引用

<s:iterator status="status" value="namesHead"> 
 <input type="checkbox" onclick="selectSimilarSubGroup('<s:property value="%{id}" />')" />Select All
 <s:set name="itrVar" value="1"></s:set>  
 <s:iterator  status="status1" value="subHead" >
   <s:set name="var1" value="%{refer_id}"></s:set>
   <s:set name="var2" value="%{id}"></s:set>
   <s:if test="%{#var1==#var2}">
     <s:set name="itrVar" value="%{#status1.count}"></s:set>  
     <input type="checkbox" multiple id="chk_grp<s:property value="%{id}"/>_<s:property value="%{#status1.count}" />" name="chk_grp" value="<s:property value="%{id_grp}"/>" /> 
     <s:property value="%{name_grp}"/>
   </s:if>
  </s:iterator>
  <s:hidden name="grp_count_%{id}" value="%{#itrVar}" />
</s:iterator>     

enter image description here 我认为这是因为迭代器正在跳过第二个循环中的初始计数。如何修改代码以获得预期的输出。或者有没有办法在页面内部增加变量?

1 个答案:

答案 0 :(得分:0)

嗯......子迭代器状态应该在父迭代器的每次迭代时重置,同时包含“两个单独的列表”或“另一个列表中的列表”......

有些东西搞砸了柜台。尝试删除<s:set中的<s:if行,仅用于调试,暂时忽略<s:hidden

<s:iterator status="status" value="namesHead"> 
 <input type="checkbox" onclick="selectSimilarSubGroup('<s:property value="%{id}" />')" />Select All
 <s:set name="itrVar" value="1"></s:set>  
 <s:iterator  status="status1" value="subHead" >
   <s:set name="var1" value="%{refer_id}"></s:set>
   <s:set name="var2" value="%{id}"></s:set>
   <s:if test="%{#var1==#var2}">
     <!-- Nothing here -->
     <input type="checkbox" multiple id="chk_grp<s:property value="%{id}"/>_<s:property value="%{#status1.count}" />" name="chk_grp" value="<s:property value="%{id_grp}"/>" /> 
     <s:property value="%{name_grp}"/>
   </s:if>
  </s:iterator>
  <!-- Nothing here -->
</s:iterator>     

你看到了什么?