【发布时间】:2012-02-07 00:12:51
【问题描述】:
我在 LR 6.1 GA1 的一个 Liferay 项目(单一战争)中有 2 个 JSF portlet(一个 ICEfaces,一个直接 JSF)。我的会话 bean 用 @ManagedBean 和 @SessionScoped 注释,我的 faces-config.xml 包含
<managed-bean>
<managed-bean-name>wtfBean</managed-bean-name>
<managed-bean-class>com.test.beans.WtfBean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
我已将每个 portlet 放在一个单独的网页上。我在 bean 的构造函数中打印到 System.out(我已经跟踪了整个过程),并且我的 bean 被实例化两次。
我还应该做些什么来分享我的会话数据?
谢谢。
【问题讨论】:
-
如果您已经在使用新的 JSF 2.x 注释,为什么还要在
faces-config.xml中以旧的 JSF 1.x 方式注册 bean?请注意,在普通的 JSF 环境中(至少在 servlet 上),faces-config.xml会覆盖任何注释。我不做portlet,但也许它的做法不同或表现不佳。尝试删除您注册 bean 的一种方式。