javax.servlet.ServletException:在作用域内找不到bean

我收到这个错误:

javax.servlet.ServletException: bean not found within scope 

在顶部的页面上。

  

该类存在于类路径中,它今天早上起作用,我没有得到范围内没有找到的东西。

这是怎么造成的,如何解决?

您需要class属性而不是type属性。

下列:

  

幕后基本上做了以下几点:

 Bean bean = (Bean) pageContext.getAttribute("bean", PageContext.REQUEST_SCOPE); if (bean == null) { throw new ServletException("bean not found within scope"); } // Use bean ... 

以下内容:

  

幕后基本上做了以下几点:

 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放入范围的东西已停止工作。 例如,在doGet()中执行以下操作的servlet:

 request.setAttribute("bean", new Bean()); request.getRequestDispatcher("page.jsp").forward(request, response); 

也许您已经通过URL直接调用了JSP页面,而不是通过URL调用Servlet。 如果您想禁用对JSP页面的直接访问,请将它们放在/WEB-INF并转发到它。

你必须添加

  

因为默认情况下,bean会在页面范围上查找