在Servletcontext中循环ArrayList



我得到了BlogPostsarrayList,我想在屏幕上显示对象的内容。
我从ServletContext读取ArrayList,输出如下:

 [com.example.week3.BlogPost@58d100c8, com.example.week3.BlogPost@5baade52]

我在哪里以及如何阅读这篇文章的内容?

这是我的BlogPost类:

package com.example.week3;
import java.io.Serializable;
public class BlogPost implements Serializable{
    private String blogtext;
    public BlogPost(String bt) {
       blogtext = bt;
    }
    public String getBlogtext() {
        return blogtext;
    }
}

这是我存储List的地方

Object o = getServletContext().getAttribute("blogpost");

它使用Object的默认toString()方法实现。

public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}

所以你得到的输出像com.example.week3.BlogPost@58d100c8。当你迭代ArrayList时,你需要将其类型转换为BlogPosts对象,并使用它的getter方法或覆盖toString()来显示它的内容。

你可以做

    Object o = getServletContext().getAttribute("blogpost");
    if( o instanceof ArrayList) {
        List blogList = (ArrayList) o;
        for(Object blog : blogList){
            BlogPost blogPost = (BlogPost) blog;
            System.out.println(blogPost.getBlogtext());
        }
    }

最新更新