Я новичок в сервлетах Java и, следовательно, работал над этим, когда возникла эта проблема, и я много искал решения, но не повезло.
В сервлете
Я сохранил список объектов в сеансе и перенаправил его на страницу JSP.
List<PostBean> posts= PostDAO.getPosts(user.getId());
session.setAttribute("posts", posts);
request.getRequestDispatcher("dashboard.jsp").forward(request, response);
Здесь getPosts () возвращает все сообщения, созданные пользователем как List<PostBean>
На странице JSP
<% List<PostBean> posts = (List<PostBean>) session.getAttribute("posts");
request.setAttribute("posts", posts);
%>
<section class="posts">
<c:forEach items="${posts}" var="post">
<h2><c:out value="${post.userId}"/></h2>
</c:forEach>
</section>
В ответе на stackoverflow я узнал, что список объектов должен быть сохранен в объекте запроса как таковой, а затем использован в jstl, аЯ также пытался использовать sessionScope.posts
, но все равно он не работал.
PostBean
Я сделал два его свойства общедоступными только потому, что вызывал метод getter дляобъект был предупрежден как Cannot resolve method 'getBody'
.Поэтому, чтобы получить к ним прямой доступ, я сделал их общедоступными, но все еще не работает.
package Beans;
public class PostBean {
private int id;
public String body; //made public
public int userId; //made public
private String link;
private String date;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getBody() {
return body;
}
public void setBody(String body) {
this.body = body;
}
public int getUserId() {
return userId;
}
public void setUserId(int userId) {
this.userId = userId;
}
public String getLink() {
return link;
}
public void setLink(String link) {
this.link = link;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
}
Что не так в коде?Может кто-нибудь объяснить вкратце об этом?
Заранее спасибо.