2016-12-15 90 views
0

爲了不必重複一些驗證,例如,誰可以在worlflow中看到某個文檔的某個狀態的按鈕,我正在使用會話,範圍和會話變量來存儲用戶角色和應用程序變量以存儲與每個區域相關的狀態。 我正在評估從性能和構建角度來看,如何實現託管bean,以返回用戶角色以及每個參與工作流區域的可能狀態。事實上它會是最好的結構嗎?你怎麼看?我沒有太多的Java經驗。我怎樣才能在java中構造結構,有幾種方法,一種是角色,另一種是與命名相關方法的區域相關的狀態集合。你可以在數組中返回這個方法的結果,或者有更好的返回結構。用戶角色和工作流程狀態xpages和託管bean

非常感謝!

回答

2

我最好的建議是採用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是一種獨一無二的野獸,外人可能偶爾會引起混亂。