我收到此错误:
javax.servlet.ServletException: bean not found within scope
在此页面顶部的页面上。
<jsp:useBean id="bean" type="com.example.Bean" scope="request" />
该类存在于类路径中,今天上午工作,并且我不了解范围内未找到的含义。
这是怎么引起的,我该如何解决?
您需要class属性而不是type属性。
class
type
以下:
确实 基本上 幕后如下:
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():
doGet()
request.setAttribute("bean", new Bean()); request.getRequestDispatcher("page.jsp").forward(request, response);
也许您直接通过URL调用了JSP页面,而不是通过URL调用了Servlet。如果您想禁用对JSP页面的直接访问,则将它们放入/WEB-INF并转发给它。
/WEB-INF