<s:iterator>標籤遍歷動態數組<泛型>:ArrayList<對象>,怎樣批量修改數據並一起提交到後台
這個<s:iterator>標籤屬於一個迭代器,用於將集合迭代輸出,剛開始我把它應用於實戰的時候,發現很多疑惑,這在很多網上的文章中都沒有提到過,而且大家都是照搬理論知識往自己博客一帖完事,但是真正的實際問題還是不能得到解決,這個標籤在用之前,自己先翻了書籍看了struts標籤<s:iterator>這章,將基礎的理論知識梳理了一遍,然後摸索著去解決掉!
在用之前可能遇到的問題,我可能開發經驗有限,所以對這種標籤「從無到一」熟練過程中,有過很多疑惑,希望把這些問題寫下來給後者的開發人員提供一點幫助!
以下是我當時的疑惑:
1、這個標籤在遍歷集合的時候,對象被迭代遍歷出來,然後供每個欄位輸出的input標籤其中的name屬性只有一個名字,也就是每個對象的相同欄位name是一樣的,那我修改提交後的name屬性數據代表的是第一個對象的還是最後一個對象的?
<s:iterator value="bookList" status="st" id="a">
<input type="text" id="bookList" value="<s:property value="bookList"/>" stylex="display: none"><s:set name="zz" value="#a.size()"></s:set><tr>
<td rowspan="<s:property value="#zz"/>"><s:property value="#a.name"/></td>
<td rowspan="<s:property value="#zz"/>"><input type="text" name="bookValue" id="bookValue<s:property value="#st.count"/>" value="<s:property value ="#a.bookValue"/>"></td><td rowspan="<s:property value="#zz"/>"><input type="text" name="bookPrice" id="bookPrice<s:property value="#st.count"/>" value="<s:property value = "#a.bookPrice"/>"></td>
<td rowspan="<s:property value="#zz"/>"><input type="text" name="bookTitle" id="bookTitle<s:property value="#st.count"/>" value="<s:property value = "#a.bookTitle"/>"></td>
<td rowspan="<s:property value="#zz"/>"><input type="text" name="bookMes" id="bookMes<s:property value="#st.count"/>" value="<s:property value ="#a.bookMes"/>"></td>
<td rowspan="<s:property value="#zz"/>"><input type="text" name="value" id="value<s:property value="#st.count"/>" value="<s:property value = "#a.value"/>"></td>
<td rowspan="<s:property value="#zz"/>" stylex="display: none"><input type="text" name="bookListId" value="<s:property value = "#a.id"/>"></td>
</tr>
</s:iterator>
從上面代碼看的話,我剛開始以為後面的數據會覆蓋前面的數據,但是轉折點在我測試的時候,仔細看了下報出的錯誤,里有表示我的bookValue、bookPrice、bookTitle等這些是集合併且後面集合中出現的數據就是我提交的數據,並且提示不能匹配,看到這裡我興奮了,因為問題終於弄明白了,我需要在後台,把每個欄位的name屬性名以一個集合的形式去getter和setter,如:
private ArrayList bookValue;
private ArrayList bookPrice;private ArrayList bookTitle;private ArrayList bookMes;
private ArrayList value;private ArrayList bookListId;
之後就是getter和setter。
把數據提交到後台之後就進行數據的修改操作就是了!
推薦閱讀:
※Struts 2 中 <s:form> 標籤和 HTML 的 <form> 標籤有什麼區別?
TAG:Struts |