在用struts2的ognl语言编写的jsp中如何对iterator循环中的textfield取值
记录一下在做架构实验时遇到的一个比较头疼的问题。背景是一个购物车场景,前端jsp中通过s:iterator循环获取cartItemList中的cartItem,其中数量是通过s:textfiled来展示,编写updateAction实现对文本框中的内容取值,计算总金额。
最开始的方法
一开始主要是考虑在s:textfield中加name属性,在action中通过写get()、set()方法来获取每一个循环中的值,再在Action里面对获取到的字符串进行格式转化来计算。
hhh这样肯定是不行的啦,可能当时脑子秀逗了才这么写的,这种写法根本不可能实现预期功能。当时可能觉得jsp那边是循环,action这边也是写在循环里面的,应该是一一对应计算的哈哈哈哈T T
运行的时候看到了报错信息,发现获取到的字符串和想要的相差甚远,比如我第一个商品的数量是1,第二个商品的数量是2,然后他报错的内容是这个:
然后就发现,原来我们直接用get、set方法在循环中的输入框里获取到的字符串,程序会直接帮我们自动拼接起来,于是想到用字符分割的方法来进行取值。
用split语句进行字符串分割
因为之前看到了程序报错返回的获取到的字符串信息,发现是用‘ , ’来进行拼接的,于是之后就用split语句来实现字符串的分割:
String[] q = Q.split(