代码如下,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属性值均相同,造成没有循环的假象。
[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属性值均相同,造成没有循环的假象。