小编典典

将对象数组从servlet发送到JSP

jsp

我想通过请求将自己的对象数组发送到JSP页面。

在Servlet的这段代码中,我将获取数据,将其放在对象数组上,并将其设置为请求。

     if (request.getParameter("todo").equals("show_article_list")) {
         try {
             Article[] articles = this.getArticleList();

             request.setAttribute("articles", articles);
            RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("article/article_list.jsp");
            dispatcher.forward(request, response);
         } catch (Exception e) {
         }
     }

    public Article[] getArticleList() throws Exception {
    db data = new db();
    Connection con = data.OpenConnection();

    PreparedStatement statement = con.prepareStatement("SELECT * FROM `article`");
    ResultSet result = statement.executeQuery();


    int size = 0;  
    if (result != null)   
    {  
        if (result.last()) {
            size = result.getRow();
            result.beforeFirst();
        }
    }

    Article[] articles = new Article[size];
    int i = 0;
    while(result.next()){
        articles[i] = new Article (
                result.getInt(1),
                result.getString(2),
                result.getString(3),
                result.getString(4));
        i++;        
    }

    return articles;
  }

这是我的课:

public class Article {
public Integer getId(){return id;}

public String getTitle(){return title;}
public void setTitle(String title){this.title = title;}

public String getText(){return text;}
public void set(String text){this.text = text;}

public String getDescription(){return description;}
public void setDescription(String description){this.description= description;}

private Integer id;
private String title;
private String text;
private String description;

public Article(Integer Id, String Title, String Text, String Description)
{
    id = Id;
    title = Title;
    text = Text;
    description = Description;
}
}

在我的JSP页面上,我想使用request.getAttribute("articles");“我该怎么做” 循环这种对象数组?

我必须使用<jsp:useBean/>其他东西吗?我试图这样做:

Article[] articles = request.getAttribute("articles");

但是我有一个错误: Article cannot be resolved to a type

我做错了什么?


阅读 342

收藏
2020-06-08

共1个答案

小编典典

你可能

  • 忘记使用以下命令将导入JSP中的Article类 <%@ page import="com.foo.bar.Article" %>
  • 忘记将getAttribute()的结果强制转换为文章数组:

Article[] articles = (Article[]) request.getAttribute("articles");

请注意,JSP中不应包含任何Java代码。您应该使用JSPEL,JSTL和其他自定义标签。阅读如何避免JSP文件中的Java代码。

2020-06-08