用户可以在浏览器上打开另一个选项卡并查看同一个站点。在这种情况下,他将有相同的会话,但视图不同。作为一个练习,我正在构建一个 jsf,primefaces 站点。用户首先登录,他的登录信息存储在会话 bean 中。如果他随后打开另一个选项卡,他可以查看站点的不同页面,每个选项卡查看不同的页面。我需要在视图 bean 中捕获此信息。
我的问题是,如果我在视图 bean 中,我如何从会话 bean 中获取信息?这可能是不可能的,在这种情况下,解决问题的最佳方法是什么?
用户可以在浏览器上打开另一个选项卡并查看同一个站点。在这种情况下,他将有相同的会话,但视图不同。作为一个练习,我正在构建一个 jsf,primefaces 站点。用户首先登录,他的登录信息存储在会话 bean 中。如果他随后打开另一个选项卡,他可以查看站点的不同页面,每个选项卡查看不同的页面。我需要在视图 bean 中捕获此信息。
我的问题是,如果我在视图 bean 中,我如何从会话 bean 中获取信息?这可能是不可能的,在这种情况下,解决问题的最佳方法是什么?
我想这是可能的。您可以从更窄的 bean 访问范围更广的 bean。例如,您可以从请求范围内访问任何类型的 bean。并且应用程序范围的 bean 可以被任何其他 bean 使用。尝试注入您的会话作用域 bean 以查看作用域。喜欢这里:
http ://www.mkyong.com/jsf2/injecting-managed-beans-in-jsf-2-0/
这里也几乎与您的问题重复:JSF2 Can't reach SessionScoped bean from ViewScoped as ManagedProperty