Xpages 在XPiNC应用程序中,如何根据角色启动一个XPage与另一个XPage

Xpages 在XPiNC应用程序中,如何根据角色启动一个XPage与另一个XPage,xpages,xpinc,Xpages,Xpinc,我有一个XPiNC应用程序,它由两个不同的xpage组成。XPages设置为基于角色使用。一个角色是设置内容的人,另一个角色是消费内容的人 我的要求之一是消费者角色希望从桌面打开NSF,并让它自动打开消费者XPage。我知道我可以设置Launch属性来为消费者执行此操作,但这也会导致内容提供商打开XPage,这是不应该发生的 如何设置它,使应用程序根据其角色打开到正确的XPage?包含页面组件支持可计算的pageName属性。如果您将启动页面设置为仅由一个组成的XPage,并根据用户角色(例如c

我有一个XPiNC应用程序,它由两个不同的xpage组成。XPages设置为基于角色使用。一个角色是设置内容的人,另一个角色是消费内容的人

我的要求之一是消费者角色希望从桌面打开NSF,并让它自动打开消费者XPage。我知道我可以设置Launch属性来为消费者执行此操作,但这也会导致内容提供商打开XPage,这是不应该发生的


如何设置它,使应用程序根据其角色打开到正确的XPage?

包含页面组件支持可计算的pageName属性。如果您将启动页面设置为仅由一个组成的XPage,并根据用户角色(例如context.getUser.getRoles.contains[Consumer])计算页面名/consumer.xsp:/index.xsp,则用户实际看到的内容将取决于角色。

包含页面组件支持可计算的pageName属性。如果您将启动页面设置为仅由一个组成的XPage,并根据用户角色(例如context.getUser.getRoles.contains[Consumer])计算页面名/consumer.xsp:/index.xsp,则用户实际看到的将取决于角色。

另一种方法是使用第三个页面,即启动页面。此页面将有一个beforePageLoads事件,该事件查看用户角色,然后根据检测到的角色执行context.redirectToPage/otherpage.xsp。另一种方法是使用第三个页面,即启动页面。此页面将有一个beforePageLoads事件,该事件查看用户角色,然后根据检测到的角色执行context.redirectToPage/otherpage.xsp。我知道这已得到回答,但出于我的利益。您是否能够拥有1个xpage,然后根据角色动态加载自定义控件

我知道这个问题已经得到了回答,但这是为了我的利益。您是否能够拥有1个xpage,然后根据角色动态加载自定义控件

听起来你需要消除歧义。我的直觉告诉我,也许使用XAgent是可行的,但我不确定。我会尝试设置一个XAgent,将其设置为启动属性,然后在AfterRenderResponse中,根据角色导航到适当的XPage。关于XAgents的信息可以在这里找到:听起来你需要消除歧义。我的直觉告诉我,也许使用XAgent是可行的,但我不确定。我会尝试设置一个XAgent,将其设置为启动属性,然后在AfterRenderResponse中,根据角色导航到适当的XPage。关于XAgents的信息可以在这里找到:这是一个完美的解决方案,只需要几行代码。获取角色,测试每个可能性,并根据结果打开正确的页面。还有一个建议。在其他页面上,你应该做相反的操作。检查此人是否具有该特定页面的角色,如果他们没有将其发送回启动页面。如果有人通过电子邮件将其中一个页面的url发送给没有角色的人,他们将无法进入该页面。感谢Dec。我在周末重新编辑了整个应用程序,使其在一个XPage上工作,而不需要两个XPage。这是一个完美的解决方案,只需几行代码。获取角色,测试每个可能性,并根据结果打开正确的页面。还有一个建议。在其他页面上,你应该做相反的操作。检查此人是否具有该特定页面的角色,如果他们没有将其发送回启动页面。如果有人通过电子邮件将其中一个页面的url发送给没有角色的人,他们将无法进入该页面。感谢Dec。我在周末重拨了整个应用程序,使其在一个XPage上工作,而不需要两个XPage。Tim,我不熟悉include选项。你是说我可以有一个XPage,并根据同一页面上的角色打开其他XPage吗?罗伊,这是正确的:include组件基本上将一个页面嵌入到另一个页面中,但从服务器状态的角度来看,不像iframe。在某种程度上,这就像向XPage中添加任何自定义控件,但有两个关键区别:将整个XPage嵌入到另一个XPage中,而不仅仅是自定义控件,并且可以计算包含哪个页面,而不必在设计时知道要在组件树中的该位置包含哪些内容。Tim,我不熟悉include选项。你是说我可以有一个XPage,并根据同一页面上的角色打开其他XPage吗?罗伊,这是正确的:include组件基本上将一个页面嵌入到另一个页面中,但从服务器状态的角度来看,不像iframe。在某种程度上,这就像将任何自定义控件添加到XPage中,但有两个关键区别:您将整个XPage嵌入到另一个XPage中,而不仅仅是自定义控件,并且您可以计算哪个页面是i 包括在内,而不必在设计时知道您希望在组件树中的该位置包含哪些内容。