2014-09-21 158 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