2014-09-21 118 views
1

我有List<PostData>在Servlet中有一些用户的帖子,我该如何发送这个列表到用户的JSP页面?我需要拆分服务器部分和布局部分。 谢谢。如何发送列表从Servlet到JSP

这是我的清单:

public List<PostData> getPostforUser(String komy) 
{ 
    ArrayList<PostData> posts = new ArrayList<PostData>(); 
    try { 
     Statement statement = connection.createStatement(); 
     ResultSet rs = statement.executeQuery("select * from posts where komy='"+komy+"'"); 
     while(rs.next()) 
     { 
      PostData postdata = new PostData(); 

      postdata.setId(rs.getInt("id")); 
      postdata.setOtkogo(rs.getString("otkogo")); 
      postdata.setKomy(rs.getString("komy")); 
      postdata.setText(rs.getString("text")); 
      postdata.setDate(rs.getString("'date'")); 
      posts.add(postdata); 

     } 
    }catch (SQLException e) { 

     e.printStackTrace(); 
    } 
    return posts; 
} 

所有的工作,我做了连接,并低于其他的东西。

回答

2

你可以在你的属性中设置列表并循环遍历你的jsp。

request.setAttribute("posts", posts); 

在你的JSP:

<table> 
    <c:forEach items="${posts}" var="post"> 
    <tr> 
    <td>${post.id}</td> 
    .... 
    </tr> 
    </c:forEach> 
</table> 

没有JSTL,将是这样的:

<% 
    ArrayList<PostData> posts=(ArrayList<PostData>) request.getAttribute("posts"); 
    for (PostData post: posts) { 
%> 
    <tr> 
    <td><%=post.id%></td> 
    .... 
    </tr> 
<%}%> 
+0

没有任何jstl? – 2014-09-21 19:38:04

0

使用请求范围属性,则可以通过${postforUser}通过JSP EL访问它。

request.setAttribute("postforUser", getPostforUser("komy")); 
+0

它的工作原理,如果我有1篇文章,但如果我不知道有多少帖子在数据库中?它可能是10. – 2014-09-21 18:57:05

+0

然后使用'komy'如'%'+ komy ​​+“%'”'。 – 2014-09-21 19:19:47