如何通过ExternalContext访问JSF2 @ViewScoped beans?

发布于 2024-11-07 08:55:09 字数 638 浏览 0 评论 0原文

在 JSF1 中,您可以通过在 JSF2 中引入了 @ViewScoped 来访问当前 FacesContext 的 bean 实例

ExternalContext ec = FacesContext.getCurrentInstance().getExternalContext()
ev.getApplicationMap().get(beanName) // get an @ApplicationScoped bean instance
ev.getSessionMap().get(beanName) // get a @SessionScoped bean instance
ev.getRequestMap().get(beanName) // get a @RequestScoped bean instance

,但我找不到相应的 getViewMap()< ExternalContext 上的 /code> 方法?我正在使用最新的 JSF 2.1.1-b04。 我是否误解了 @ViewScoped bean 的某些方面?在服务器端获取 @ViewScoped bean 实例还有另一个好的做法吗?

谢谢, 史蒂夫

In JSF1 you can access the bean instances of your current FacesContext by

ExternalContext ec = FacesContext.getCurrentInstance().getExternalContext()
ev.getApplicationMap().get(beanName) // get an @ApplicationScoped bean instance
ev.getSessionMap().get(beanName) // get a @SessionScoped bean instance
ev.getRequestMap().get(beanName) // get a @RequestScoped bean instance

In JSF2 @ViewScoped has been introduced, but I can't find a corresponding getViewMap() method on ExternalContext? I am using latest JSF 2.1.1-b04.
Am i misunderstanding some aspects of a @ViewScoped bean? Is there another good-practice to get a @ViewScoped bean instance on the server side?

Thanks,
Steve

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

寻找一个思念的角度 2024-11-14 08:55:09

尝试评估表达式(evaluateExpressionGet):

context.getApplication().evaluateExpressionGet(context, "#{beanName}", BeanClass.class)

Try to eval expression (evaluateExpressionGet):

context.getApplication().evaluateExpressionGet(context, "#{beanName}", BeanClass.class)
内心激荡 2024-11-14 08:55:09

查看范围数据存储在 查看根目录。您可以从 上下文 获取此信息

View scoped data is stored in the view root. You can get this from the context.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文