您需要class
屬性,而不是type
屬性。
以下:
<jsp:useBean id="bean" type="com.example.Bean" scope="request" />
確實基本上幕後如下:
Bean bean = (Bean) pageContext.getAttribute("bean", PageContext.REQUEST_SCOPE);
if (bean == null) {
throw new ServletException("bean not found within scope");
}
// Use bean ...
雖然以下:
<jsp:useBean id="bean" class="com.example.Bean" scope="request" />
確實基本上幕後如下:
Bean bean = (Bean) pageContext.getAttribute("bean", PageContext.REQUEST_SCOPE);
if (bean == null) {
bean = new Bean();
pageContext.setAttribute("bean", bean, PageContext.REQUEST_SCOPE);
}
// Use bean ...
如果它工作之前,並沒有工作「的突然」,那麼就意味着東西這是負責把豆的範圍已停止工作。例如一個servlet這確實在doGet()
如下:
request.setAttribute("bean", new Bean());
request.getRequestDispatcher("page.jsp").forward(request, response);
也許你已經通過URL調用,而不是由URL調用Servlet的直接JSP頁面。如果您想停用對JSP頁面的直接訪問,請將它們放入/WEB-INF
,然後轉發給它。
雖然爲時已晚,但的確很好解釋@BalusC – dildeepak 2017-07-05 16:28:46