我是Java servlet的新手,因此当这个问题出现时,我正在努力解决这个问题,并且我进行了很多搜索以获取解决方案,但是没有运气。
在Servlet中
我已经在会话中存储了一个对象列表,并将其转发到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
,但仍然无法正常工作。 / p>
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;
}
}
代码有什么问题?有人可以简要解释一下吗?
谢谢。