JSF 2:在特定用户之间共享范围

时间:2012-04-05 14:48:06

标签: jsf-2 icepush

我不确定我想要的是否可能,但仍然...... 我想在用户之间共享数据,比如完成here。然而,与使用ApplicationScope共享数据的示例不同,我希望数据不是在所有用户之间共享,而是仅针对用户组(类似于私人聊天室,而不是像公共空间中那样)。那个例子)。 目前我使用ViewScope但是为了更新参与者的显示,请使用我找到的hack here,但这个解决方案不是很稳定,因为偶尔会抛出JS错误。 对我的问题有什么合理的解决方案吗? 干杯, 埃雷兹

1 个答案:

答案 0 :(得分:2)

将它们保存在应用程序范围的bean中的Map中,其中映射键是组标识符。

E.g。

@ManagedBean
@ApplicationScoped
public class ChatManager {

    private Map<Group, Room> rooms;

    // ...
}

@ManagedBean
@ViewScoped
public class GroupChat {

    @ManagedProperty("#{chatManager.rooms[user.group]}")
    private Room room;

    // ...
}