如何从Servlet访问JSF ViewScoped托管bean?
(假设有问题的托管bean已经创建,但仍未被销毁)
答案 0 :(得分:4)
视图范围的变量存储在组件树的view map中。要在视图上下文之外访问此数据,您必须create a JSF context和restore the view来获取请求。这涉及重写JSF container提供的大部分功能。
JSF 2提供了在没有页面刷新的情况下与服务器端状态交互的机制:AJAX tags和JSF JavaScript API。如果可能的话,我会考虑利用它们。
或者,将数据放入可通过servlet(会话)轻松访问的范围。
由于视图状态通常保存在会话中,因此从技术上讲,可以从此处访问视图状态。但这将涉及特定于实现的黑客攻击,这些黑客攻击可能无法在底层框架升级后继续存在。我甚至不认为这是一个解决方案。