2016-12-15 92 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是一种独一无二的野兽,外人可能偶尔会引起混乱。