Я читал несколько руководств, где упоминалось, что единственный способ, которым вы можете установить раскрывающееся меню по умолчанию, - это упорядочить список опций (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 в качестве опции по умолчанию, я могу управлять остальными.
Заранее спасибо.
Почему вы не можете установить значение attirubute из selectOneMenu как currentUser или null на основе его группы пользователей и сделать Collections.sort в memberList? –
сортировка не будет работать в memberList. – iJava
Вы можете уточнить? почему сортировка не работает? –