[英]Trying to access bean created in servlet via JSP
我正在嘗試從JSP訪問在servlet中創建的bean。 在我的servlet BlogController.java
我像這樣實例化bean。
BlogList bloglist = new BlogList();
if (bloglist.getSize()<1) {
bloglist.addDummies();
//Now the size of the bloglist is 10
}
然后,仍然在這個servlet中,我將jsp稱為
RequestDispatcher rd = request.getRequestDispatcher("/Blog7.jsp");
rd.forward(request, response);
在JSP內部,我試圖像
<jsp:useBean id="bloglist" type="ub7.BlogList" scope="session"/>
但是這里的bloglist
大小為0,為什么?
您將不得不在servlet本身上將bean添加到會話中:
在servlet中
HttpSession session = request.getSession();
session.setAttribute("bloglist", bloglist);
RequestDispatcher rd = request.getRequestDispatcher("/Blog7.jsp");
rd.forward(request, response);
在jsp中
Blog List count: ${sessionScope.bloglist.size()}
在servlet中嘗試:
RequestDispatcher rd = request.getRequestDispatcher("/Blog7.jsp");
request.setAttribute("bloglist", bloglist); // Will be available as ${bloglist} in JSP
rd.forward(request, response);
在JSP中:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
....
<table>
<c:forEach items="${bloglist}" var="blog">
<tr>
<td>${blog.name}</td>
</tr>
</c:forEach>
</table>
由於您的<jsp:useBean>
定義了scope="session"
,因此您的servlet應該這樣做( 在調用RequestDispatcher
之前 ):
request.getSession().setAttribute("bloglist", bloglist);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.