標籤:

<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 |