0

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

4

1 回答 1

2

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

例如

@ManagedBean
@ApplicationScoped
public class ChatManager {

    private Map<Group, Room> rooms;

    // ...
}

@ManagedBean
@ViewScoped
public class GroupChat {

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

    // ...
}
于 2012-04-06T01:57:23.543 回答