JSF Primefaces SelectOneMenu默认值

时间:2015-11-30 18:24:54

标签: jsf primefaces selectonemenu

我已经阅读了一些提到它的教程,您可以设置默认下拉菜单选项的唯一方法是订购选项(SelectItems)列表。但我无法这样做。

以下是我的XHTML:

<p:selectOneMenu ....>
    <p:ajax event="change" update="ordersListForm" />
    <f:selectItems value="#{Controller.memberList}"
        var="User" itemLabel="#{User.authority.fullName}"
        itemValue="#{User.authority.fullName}" />
</p:selectOneMenu>

和我的豆子:

 currentUser = loginManager.getCurrentPrincipal().getUser();
 memberList = new ArrayList<>();
 List<SiteMember> tempList = memberManager.getList();
 currentUserNN = isUserNN(currentUser);
 for (SiteMember member : tempList) {
    for (Group group : memberManager.getGroups(member.getAuthority().getUserName())) {
         if (group.getItemName().startsWith(Roles.ROLE)) {
            memberList.add(member);
         }
    }
 }

因此默认值取决于哪个用户已登录以及他所属的组。

如果用户属于组ROLE,那么他的名字应该是默认选项。如果他不属于该组,则selectItems应按字母顺序memberList排序。

如果我至少可以展示如何将defaultUser作为默认选项,我可以管理其余部分。

提前致谢。

1 个答案:

答案 0 :(得分:0)

将selectOneMenu的值设置为当前用户组。如果.startsWith(Roles.ROLE)为true,则设置值,否则将值设置为null。