如何从 Servlet 访问 JSF ViewScoped 托管 Bean?
(假设相关托管 Bean 已经创建,并且尚未销毁)
最佳答案
View 范围的变量存储在view map中在组件树上。要在 View 上下文之外访问此数据,您必须 create a JSF context和 restore the view对于请求。这涉及重写 JSF container 提供的大部分功能。 .
JSF 2 提供了无需页面刷新即可与服务器端状态交互的机制:AJAX tags和 JSF JavaScript API 。如果可能的话,我会考虑利用这些。
或者,将数据放入可通过 servlet( session )轻松访问的范围内。
由于 View 状态通常保存在 session 中,因此从技术上讲可能可以从此处访问 View 状态。但这将涉及特定于实现的黑客攻击,这些黑客攻击可能无法在底层框架的升级后继续存在。我什至不会将此视为解决方案。
关于jsf - 从 Servlet 访问 JSF ViewScoped 托管 bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12230065/