您的位置:首页 > 其它

<s:iterator>标签遍历动态数组<泛型>:ArrayList<对象>,怎样批量修改数据并一起提交到后台

2017-11-29 16:41 399 查看
这个<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"/>" style="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="bookMessage" id="bookMessage<s:property value="#st.count"/>" value="<s:property value =
"#a.bookMessage"/>"></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"/>" style="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 bookMessage;

private ArrayList value;

之后就是getter和setter。

把数据提交到后台之后就进行数据的修改操作就是了!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐