jsp中<c:foreach>没有遍历

本文通过一个具体的代码示例介绍了在使用JSP进行页面元素遍历时可能遇到的一个常见错误——所有元素显示相同值的问题。该问题源于将实体对象初始化放在了循环外部,导致每次循环实际上只是修改了实体对象的某个属性值而并未创建新的对象实例。
摘要由CSDN通过智能技术生成
代码如下,topic为一个实体bean,有author属性,为说明起见,author 赋0,1,2值,但是发现 <c:forEach>中没有遍历

[code]
<%
List<Topic> list = new ArrayList<Topic>();
[color=green]Topic topic = new Topic(); [/color]
for(int i= 0 ;i <3;i++)
{
topic.setAuthor(i+"");
list.add(topic);
System.out.println("author:" + topic.getAuthor());
}
request.setAttribute("topicTest",list);
%>
<c:forEach items="${requestScope.topicTest}" var="topic">
${topic.author}<br>
</c:forEach>
[code]

注意绿色的代码,他 的位置应该放在for循环中,因为放在外面时,在FOR循环中每次仅仅是修改topic.autho的值,再将修改后的topic对象的一个副本存入到集合中而已,所以最终的结果是所有的topic属性值均相同,造成没有循环的假象。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值