【问题标题】:Access JSF ViewScoped managed bean from Servlet从 Servlet 访问 JSF ViewScoped 托管 bean
【发布时间】:2012-08-27 03:22:19
【问题描述】:

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

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

【问题讨论】:

  • 如果您需要在其范围之外访问 bean,这表明它的范围没有适当。
  • 只要对应的页面处于活动状态,ViewScoped bean 处于活动状态,那么为什么我不能从该页面调用 Servlet?

标签: jsf servlets


【解决方案1】:

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

JSF 2 提供了无需刷新页面即可与服务器端状态交互的机制:AJAX tags 和 JSF JavaScript API。如果可能的话,我会考虑利用这些。

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

由于视图状态通常保存在会话中,因此在技术上很可能从这里访问视图状态。但这将涉及特定于实现的黑客行为,这些黑客行为可能无法在底层框架升级后幸存下来。我什至不会将此视为解决方案。

【讨论】:

    猜你喜欢
    • 2012-11-08
    • 1970-01-01
    • 1970-01-01
    • 2016-12-26
    • 2011-11-16
    • 2012-03-24
    • 2012-12-22
    • 2013-07-26
    • 2014-07-06
    相关资源
    最近更新 更多