我希望对以下问题有一些意见:
我有一个登录屏幕,然后是另一个Panel
页面,在Panel
个SelectOneMenu
内。不幸的是,登录后SelectOneMenu
的输出有时是这样的:
相反,用户的完整(!)名称应放在SelectOneMenu
的中间。
有时它会起作用,有时则不起作用。
此外,如果我现在切换User
,我只会收到它的第一个字母。 (在下拉列表中,全名被写入)
我在其ManagedBean
中填充@ViewScoped
(PostConstruct
)内的内容,并从数据库中获取数据。 (查看 - > ManagedBean - > DAO类 - > ManagedBean)。
我还尝试将代码放在public Classname{}
中,结果相同。
我认为SelectOneMenu
未正确呈现存在问题
如何解决?
users.xhtml:
<p:selectOneMenu id="somSelect" value="#{userManagerBean.somValue}"
styleClass="selecters">
<p:ajax update="userDataTable" listener="#{userManagerBean.changeSomValue}" />
<f:selectItems value="#{userManagerBean.userList}" />
</p:selectOneMenu>
ManagedBean @ViewScoped:
@PostConstruct
public void init() {
// DAO Method
retrieveTableData();
String loggedInUser = "";
try{
loggedInUser = FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("sprintUser").toString();
}catch(Exception e){
System.err.println("> No previous login");
}
// Check for session login name and select from table - if session null select first
if (somValue == null && userList.size() != 0) {
somValue = userList.get(0);
for(int i = 0; i < userList.size(); i++){
if(loggedInUser.equals(userList.get(i))){
somValue = loggedInUser;
}
}
}
selectedUser = somValue();
userData = new ArrayList<User>();
// a Table population
populateUser(userData);
}