0

对于以下问题,我将不胜感激:
我得到一个登录屏幕,然后是另一个页面,其中 aPanel和内部Panel是 a SelectOneMenu。不幸的是SelectOneMenu,登录后的输出有时是这样的:

SelectOneMenu 错误

相反,用户的全名(!)应该放在SelectOneMenu.
有时有效,有时无效。
另外,如果我现在切换User,我只会得到它的第一个字母。(在下拉列表中写了全名)

ManagedBean我在它的( @ViewScoped) 中填充内容PostConstruct并从数据库中获取数据。(查看 -> ManagedBean -> DAO 类 -> ManagedBean)。我还尝试将代码放入public Classname{}其中,结果相同。

我认为SelectOneMenu未正确呈现存在问题。
如何解决?

用户.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);
        }
4

0 回答 0