2015-11-30 4 views
0

Я читал несколько руководств, где упоминалось, что единственный способ, которым вы можете установить раскрывающееся меню по умолчанию, - это упорядочить список опций (SelectItems). Но я не могу этого сделать.JSF Primefaces SelectOneMenu значение по умолчанию

Ниже мой 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> 

и мой Bean:

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 в качестве опции по умолчанию, я могу управлять остальными.

Заранее спасибо.

+0

Почему вы не можете установить значение attirubute из selectOneMenu как currentUser или null на основе его группы пользователей и сделать Collections.sort в memberList? –

+0

сортировка не будет работать в memberList. – iJava

+0

Вы можете уточнить? почему сортировка не работает? –

ответ

0

установить значение selectOneMenu в текущую группу пользователей. Если .startsWith (Roles.ROLE) true, то установите значение, иначе задайте значение null.