从Servlet访问JSF ViewScoped托管bean

时间:2012-09-01 17:59:10

标签: jsf servlets

如何从Servlet访问JSF ViewScoped托管bean?

(假设有问题的托管bean已经创建,但仍未被销毁)

1 个答案:

答案 0 :(得分:4)

视图范围的变量存储在组件树的view map中。要在视图上下文之外访问此数据,您必须create a JSF contextrestore the view来获取请求。这涉及重写JSF container提供的大部分功能。

JSF 2提供了在没有页面刷新的情况下与服务器端状态交互的机制:AJAX tagsJSF JavaScript API。如果可能的话,我会考虑利用它们。

或者,将数据放入可通过servlet(会话)轻松访问的范围。

由于视图状态通常保存在会话中,因此从技术上讲,可以从此处访问视图状态。但这将涉及特定于实现的黑客攻击,这些黑客攻击可能无法在底层框架升级后继续存在。我甚至不认为这是一个解决方案。