我最好的建議是採用pageController Methodology。那更像是真正的MVC。這已經在NotesIn9截屏中多次討論過,但基本上你有一個綁定到XPage的java對象。實際上,它是一個viewScoped bean,它保存你所有的頁面邏輯。然後你可以有像isGroupMember(),hasRole()等方法,並計算在pageInit。在我看來,在sessionScope中幾乎沒有必要堅持這一點。因此,例如我有我的pageController:
public boolean isGroupMember(String groupName) {
return JSFUtil.getXSPContext().getUser().getGroups().contains(groupName);
}
所以這是可用的每個頁面。但我不需要將該片段複製到每個頁面控制器上。在Java中,您可以讓頁面控制器擴展更通用的類。所以我有一個「base.pageController」類。所有特定的頁面控制器都可以擴展。所以這個是GroupGroup()代碼進入基地,然後它可以在每個XPage上使用。這樣做可以讓你具有這樣的泛型功能,然後擁有更多特定功能,這些功能僅適用於單個頁面。
你也可以有一個hasRole()函數等等
推薦你看看這個視頻:http://www.notesin9.com/2016/08/25/notesin9-196-no-dependency-page-controllers/
而且像這樣的問題,我建議你只需要使用的XPages標籤。加入像javabeans這樣的其他人可以讓那些對XPages一無所知的人們加入進來,而XPage是一種獨一無二的野獸,外人可能偶爾會引起混亂。