您需要属性而不是属性。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 ...
如果它以前工作过,并且“突然”没有工作,那么这意味着负责将bean放入范围的东西已经停止工作。例如,一个 servlet 在 中执行以下操作:doGet()
request.setAttribute("bean", new Bean());
request.getRequestDispatcher("page.jsp").forward(request, response);
也许您已经直接通过 URL 调用了 JSP 页面,而不是通过 URL 调用了 Servlet。如果要禁用对 JSP 页面的直接访问,请将它们放入并转发到它。/WEB-INF