我收到这个错误:
javax.servlet.ServletException: bean not found within scope
Run Code Online (Sandbox Code Playgroud)
在顶部的页面上.
<jsp:useBean id="bean" type="com.example.Bean" scope="request" />
Run Code Online (Sandbox Code Playgroud)
该类存在于类路径中,它今天早上起作用,而且我没有得到范围内未找到的内容.
这是怎么造成的,我该如何解决?
Bal*_*usC 33
您需要class属性而不是type属性.
下列:
<jsp:useBean id="bean" type="com.example.Bean" scope="request" />
Run Code Online (Sandbox Code Playgroud)
确实基本上幕后如下:
Bean bean = (Bean) pageContext.getAttribute("bean", PageContext.REQUEST_SCOPE);
if (bean == null) {
throw new ServletException("bean not found within scope");
}
// Use bean ...
Run Code Online (Sandbox Code Playgroud)
以下内容:
<jsp:useBean id="bean" class="com.example.Bean" scope="request" />
Run Code Online (Sandbox Code Playgroud)
幕后基本上做了以下几点:
Bean bean = (Bean) pageContext.getAttribute("bean", PageContext.REQUEST_SCOPE);
if (bean == null) {
bean = new Bean();
pageContext.setAttribute("bean", bean, PageContext.REQUEST_SCOPE);
}
// Use bean ...
Run Code Online (Sandbox Code Playgroud)
如果以前的工作,并没有奏效"在突然的",那么就意味着事情是负责把豆的范围已停止工作.例如,一个servlet在以下位置执行以下操作doGet():
request.setAttribute("bean", new Bean());
request.getRequestDispatcher("page.jsp").forward(request, response);
Run Code Online (Sandbox Code Playgroud)
也许您已经通过URL直接调用了JSP页面,而不是通过URL调用Servlet.如果您想禁用对JSP页面的直接访问,请将它们放入/WEB-INF并转发到它.
| 归档时间: |
|
| 查看次数: |
24339 次 |
| 最近记录: |