簡體   English   中英

嘗試通過JSP訪問servlet中創建的bean

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM