我有一个包含两个不同 XPage 的 XPiNC 应用程序。XPage 设置为基于角色使用。一个角色是为设置内容的人服务的,另一个是为使用内容的人服务的。
我的要求之一是消费者角色想要从桌面打开 NSF 并让它自动打开消费者 XPage。我知道我可以设置 Launch 属性来为消费者执行此操作,但这也会导致内容提供者打开该 XPage,这不是应该发生的。
如何设置它以便应用程序根据其角色打开到正确的 XPage?
包含页面组件 ( <xp:include />
) 支持pageName
可计算的属性。如果您将启动页面设置为仅包含 a<xp:include />
和pageName
基于用户角色(例如context.getUser().getRoles().contains("[Consumer]") ? "/consumer.xsp" : "/index.xsp"
)计算的 XPage,那么用户实际看到的内容将取决于角色。
另一种方法是创建第三页,即启动页。此页面将只有一个 beforePageLoads 事件,该事件查看用户角色,然后context.redirectToPage("/otherpage.xsp")
根据检测到的角色执行操作。
我知道这已经得到回答,但为了我的利益。您能否拥有 1 个 xpage,然后根据角色动态加载自定义控件?