0
我正在創建一個表單,用戶需要動態添加表單元素。 addEmptyItem()通過克隆給定列表中的第一個項目,清除其值,更新其索引並附加它來完成此操作。struts2迭代器:避免代碼複製
當然,它要求列表中至少有一個列表項。我的解決方案是始終顯示第一個列表項,然後遍歷其餘的部分。由於代碼重複,這讓我感到困擾。當列表項包含很多字段時,情況會變得更糟。
我想要的是類似於do-while循環的東西。任何建議如何,而無需複製代碼解決這個問題,就像我現在做的:
<s:submit type="button" onclick="addEmptyItem($('#owners')); return false;"
value="%{getText('ownership.addOwner')}"/>
<ul id="owners">
<li>
<s:textfield name="ownership.owner[0].name"
label="%{getText('ownership.owner.name')}"/>
<s:textfield name="ownership.owner[0].share"
label="%{getText('ownership.owner.share')}"/>
</li>
<s:iterator value="ownership.owner" status="i" begin="1">
<li>
<s:textfield name="ownership.owner[%{#i.count}].name"
label="%{getText('ownership.owner.name')}"/>
<s:textfield name="ownership.owner[%{#i.count}].share"
label="%{getText('ownership.owner.share')}"/>
</li>
</s:iterator>
</ul>