您的位置:首页 > 其它

注意<c:forEach>的用法

2013-04-14 22:21 337 查看
<c:forEach>中判断的问题。

<c:forEach>属性var定义的是迭代参数的名称,然后begin定义从这个值开始迭代,然后在end结束。我以为这样循环就很好解决了,因为我做的是个分页,那肯定是有12345各个页面的。这样用<c:forEach>就可以解决了。但是如果我在加个条件,如果我在当前页,当前页上面会与其他页的状态不同,比如12345,我在1上,那么1比其他都大。这该怎么解决?难道用<s:if>,我用了它,最后出了问题。从Action传过来的当前页(page)根本就不能和属性var的值相比较。想了很多办法都不行,最后只能这样解决了:

在Action中for循环,最大值定义为总页数。array定义为ArrayList型的,然后array.add(...),这样就有了一个ArrayList型的数据,传给jsp就可以解决了。

自此我也总结出来了一个经验,一般不要用<c:forEach>,除非只用来显示,它的一大好处就是可用begin和end控制循环的地方。一般要用就用<s:iterator>,如果要循环数组,就在Action中将数组改为ArrayList型的。

另一个我容易弄混的一点,就是jsp中使用<s:iterator>,假设:<s:iterator value = "num" id = "data">,如果说要将data显示出来,就直接用${data}即可,而如果要使用data,就必须#data。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: