我的jsp页面可以使用以下内容访问bean:
<jsp:useBean id="myBean"
type="myPackage.beans.MyBean"
scope="session" />如果我将作用域更改为“请求”,tomcat抛出一个异常: javax.servlet.ServletException: java.lang.InstantiationException: bean myBean,不在作用域中
但是,我通过从servlet进行转发来访问jsp页面,如下所示:
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/WEB-INF/MyJsp.jsp"); dispatcher.forward(request, response);我认为上述转发将导致MyJsp.jsp继承原始servlet的请求对象,因此myBean应该是可用的(它的创建,然后使用原始servlet中的session.setAttribute("myBean",myBean)存储)。这不正确吗?为什么当会话作用域请求成功时请求作用域会失败?
发布于 2014-09-29 07:11:45
这不正确吗?为什么当会话作用域请求成功时请求作用域会失败?
不你不对。
请求对象只适用于当前请求,并且request和session对象之间没有通信。
若要使对象在请求中可用,应使用
在发送到您的视图之前先使用request.setAttribute("OBJname" , Object)
https://stackoverflow.com/questions/26090572
复制相似问题