Почему диалог Scope не сохраняет значение переменной и выбрасывает индекс за пределы

Итак, у меня есть форма, которая в основном делает команду

<h:form id="AddTeam">
<p:growl id="growl" showDetail="true"></p:growl>
<table>
    <tr><td><p:outputLabel for="TeamName" value="Enter New Team Name"></p:outputLabel></td><td><p:inputText style="width:100%" id="TeamName" required="true" value="#{teamMaintainanceController.teamName}"></p:inputText></td></tr>
    <tr><td><p:outputLabel for="TeamDesc" value="Enter New Team's Description"></p:outputLabel></td><td><p:inputText style="width:100%" id="TeamDesc" required="true" value="#{teamMaintainanceController.teamDesc}"></p:inputText></td></tr>
    <tr><td><p:outputLabel for="TeamProj" value="Assign a preexisting project"></p:outputLabel></td><td><p:selectOneMenu style="width:100%" id="TeamProj" value="#{teamMaintainanceController.teamProject}">
                <f:selectItem style="width:100%" itemLabel="Select One" itemValue="" />
                <f:selectItems style="width:100%" value="#{projectMaintainanceController.allProjects}"/>
        </p:selectOneMenu></td></tr>
    <tr><td><p:outputLabel for="teamMemb" value="Select Team Members"></p:outputLabel></td><td><!-- <p:selectCheckboxMenu id="teamMemb" value="#{teamMaintainanceController.teamMemb}">
        <f:selectItems value="#{employeeMaintainanceController.possibleManagerList}"></f:selectItems>
    </p:selectCheckboxMenu> --><p:button value="Select Team Members" id="teamMemb" onclick="teammembers.show();return false;"></p:button></td></tr>

    <tr><td><p:commandButton id="applyBtn" value="Add" ajax="true" actionListener="#{teamMaintainanceController.addTeam}" update=":AddTeam:growl"/></td></tr>
</table>

</h:form></center>

<p:dialog header="Select Team Members" widgetVar="teammembers" modal="true">
<h:form>
    <p:dataTable var="user" rowKey="#{user.id}" value="#{employeeMaintainanceController.userList_ALL}" selection="#{teamMaintainanceController.selectedUsers}" selectionMode="multiple">
        <p:column headerText="id">
            <h:outputText value="#{user.id}"></h:outputText>
        </p:column>

        <p:column headerText="First Name">
            <h:outputText value="#{user.firstName}"></h:outputText>
        </p:column>

        <p:column headerText="Last Name">
            <h:outputText value="#{user.lastName}"></h:outputText>
        </p:column>
    </p:dataTable>
    <p:commandButton actionListener="#{teamMaintainanceController.check}" ajax="true"/>
</h:form>
</p:dialog>

Теперь он берет название команды, описание, проект из списка. Затем мы должны нажать на кнопку, которая открывает диалоговое окно, в котором имеется набор данных с возможностью выбора нескольких строк, и кнопку отправки, которая будет отправлять и сохранять список в переменной, а затем можно щелкнуть форму за модальным полем и все данные сразу.

private List<UserDto> userList_ALL;
    private UserDto selectedUsers[];


    public UserDto[] getSelectedUsers() {
        return selectedUsers;
    }
    public void setSelectedUsers(UserDto[] selectedUsers) {
        System.out.println(selectedUsers[0]);
        this.selectedUsers = selectedUsers;
    }
    public List<UserDto> getUserList_ALL() throws IOException{
        return userService.getUserList();
    }
    public void setUserList_ALL(List<UserDto> userList_ALL) {
        this.userList_ALL = userList_ALL;
    }

В моем методе addTeam я в основном делаю System.out.println(selectedUsers[0].getId()); который бросает исключение нулевого указателя.

В моем check() Я в основном начинаю свой разговор, используя conversation.begin()

1 ответ

Получить значения списка в @postconstruct

Другие вопросы по тегам