我有一套数据库,当用户进行身份验证时,托管bean会记住客户ID。整个数据库套件中的所有XPage都使用此客户ID。所有XPage都能够切换到不同的帐户,因此客户ID会发生变化。
当切换帐户时,设置了该数据库的托管bean,但是转移到另一个数据库中的另一个XPage,并且该托管bean尚未更新!似乎托管bean会话范围是特定于数据库的,但我的情况(对或错)意味着我必须记住跨数据库的这个客户ID。
如何在跨数据库记住托管bean中设置的客户ID?我是否必须得到标准配置文件,因为托管bean无法跨数据库工作?!
答案 0 :(得分:4)
托管bean的范围限定为应用程序,会话,视图或请求,这些范围只能在单个nsf中访问。
你有(至少?)两个选项:
我会推荐选项1。
答案 1 :(得分:1)
唯一的另一个选择是当你从一个数据库移动到另一个数据库时,在查询字符串中传递一些东西,允许你在另一个数据库的上下文中重建bean。如果您对Java感到满意,那么Per的选项2就是前进的方向。
答案 2 :(得分:0)
你必须从两个角度来看待它:
bean的源代码(逻辑):
数据:强>
不共享bean的值:对于应用程序,视图和请求范围,它是预期的。您可能想要共享会话范围的bean。我确信您可以重新考虑并将bean的范围更改为其他范围,将会话范围的属性保留在其他位置(cookie或数据库)。 在这种情况下,如Per Henrik Lausten建议的那样,部署您的bean代码服务器。