您需要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