是否可以在struts 2中增加变量? 我有一组复选框,每个复选框都在不同的组下。我根据数据库中的组ID和自己的id命名复选框
// 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>
我认为这是因为迭代器正在跳过第二个循环中的初始计数。如何修改代码以获得预期的输出。或者有没有办法在页面内部增加变量?
答案 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>
你看到了什么?