我已经阅读了一些提到它的教程,您可以设置默认下拉菜单选项的唯一方法是订购选项(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作为默认选项,我可以管理其余部分。
提前致谢。
答案 0 :(得分:0)
将selectOneMenu的值设置为当前用户组。如果.startsWith(Roles.ROLE)为true,则设置值,否则将值设置为null。