1

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

在此处输入图像描述

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

//subHead : 列表包含所有子组的 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>     

在此处输入图像描述 我认为这是因为迭代器在第二个循环中跳过了初始计数。我如何修改代码以获得预期的输出。或者有什么方法可以增加页面本身的变量?

4

1 回答 1

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>     

你看到了什么 ?

于 2012-10-29T09:28:51.160 回答