如何从Servlets访问@ViewScoped托管bean?

Fil*_*ppo 6 jsf servlets view-scope

我想访问Servlet中的视图范围托管bean.

我搜索了类似的问题,得到了这些问题:

如何从视图范围中获取bean,FacesContext.getCurrentInstance()在Servlet中不适用,因为它应该给出null结果

JSF - 按名称获取托管bean,它处理所有其他范围但不处理viewcope

我会认为这是不可能的,不是吗?

有一个简单的解决方案可以将bean范围更改为会话范围,但这是最后的机会,因为我担心内存消耗.

我最后需要的是:managebean包含dataTable中显示的一些数据.同一页面应包括这些数据的图表表示的图像(强制性).图像可以由Servlet生成,但它需要访问数据或从db重新加载它们.

我也试过<p:graphicImage>PrimeFaces 2.X,但它与viewscope bean不兼容.有什么建议吗?

Bal*_*usC 6

那是不可能的,不.视图范围与特定的JSF视图相关联,这在普通的HTTP servlet请求中是无法实现的.请注意,在普通HTTP servlet请求期间,您无法访问具体的请求范围bean,它们将始终返回null.

会话范围是您可以获得的最佳范围.一旦在servlet中完成了属性,就可以从会话范围中删除该属性.

session.removeAttribute("somename");
Run Code Online (Sandbox Code Playgroud)