List listMainBoard =(List) mapboard.get(new Integer(0));
Board mainBoard=new Board();
for(int i=0;i<listMainBoard.size();i++)
{
//循环取得主版块
mainBoard=((Board)listMainBoard.get(i));
%>
<tr>
<td colspan="4"><%=mainBoard.getBoardName() %></td>
</tr>
<%
//子版块
**List listSonBoard =(List)mapboard.get(new Integer(mainBoard.getBoardId()));**
//out.print(mainBoard.getBoardId()); 返回主版块ID,即parentId 为 0
if(listSonBoard!=null){
for(int j=0;j<listSonBoard.size();j++)
{
//循环取得子版块
Board sonBoard=(Board)listSonBoard.get(j);
//最后发表的主题
Topic topic =new Topic();
//最后发表的作者
User user=new User();
int boardId =sonBoard.getBoardId();
//取得该版块的主题列表
List listTopic=new TopicDAO().findListTopic(1, boardId);
if(listTopic!=null&&listTopic.size()>0)
{
//取的最后发表的帖子
topic=(Topic)listTopic.get(0);
user=new UserDAO().findById(topic.getuId());
out.print("用户:"+user.getuName());
}
%>
List listSonBoard =(List)mapboard.get(new Integer(mainBoard.getBoardId())); 这边只保存了map的最后一组元素,前面的被覆盖了,怎么回事啊,求解答,谢谢
因为你是在for循环里定义的listSonBoard,这时候每循环一次时的listSonBoard都是一个新的集合,所以之前的listSonBoard中的内容都没了,你应该在for循环的外部定义List listSonBoard=new ArrayList();然后在for循环的时候listSonBoard.add()将新增的内容添加到集合里面。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。