Кнопка Command Primefaces не работает после обновления, сделанного с помощью поля выбора

У меня есть четыре меню выбора на моей странице. Моя проблема странная, т.е. без выбора какого-либо выпадающего меню, если вы нажмете «Отправить», все работает нормально. Но когда я выбираю раскрывающееся меню подгруппы, а затем, если я нажимаю кнопку отправки, он не вызывает метод, который он намеревался вызвать... Вот мой код..

<?xml version="1.0"?>
<f:view xmlns="http://www.w3.org/1999/xhtml" xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html" xmlns:p="http://primefaces.org/ui" xmlns:ui="http://java.sun.com/jsf/facelets">
<h:head/>
<h:body>    
<h:form id="form">
            <p:panel header="Service Details" style="width:800px">

            <p:panelGrid columns="4">
                <h:outputText value="Group: " />
                <p:selectOneMenu value="#{helpDeskBean.group}">
                    <f:selectItem itemLabel="Select One" itemValue="" />
                    <f:selectItems value="#{helpDeskBean.createRequestDTO.groupsList}" var="item" itemLabel="#{item.groupdesc}" itemValue="#{item.groupid}" />
                    <p:ajax event="change" listener="#{helpDeskController.groupChange}" update="subGroupID"  partialSubmit="true"/>
                </p:selectOneMenu>


                <h:outputText value="Sub Group: " />
                <p:selectOneMenu value="#{helpDeskBean.subGroup}" id="subGroupID">
                <f:selectItem itemLabel="Select One" itemValue="" />
                    <f:selectItems value="#{helpDeskBean.groupChangeList}" var="item2" itemLabel="#{item2.subGroupDesc}" itemValue="#{item2.subGroupCode}" />
                    <p:ajax event="change" listener="#{helpDeskController.SubGroupChange}" update="serviceID" />
                </p:selectOneMenu>

                <h:outputText value="Service: " />
                <p:selectOneMenu value="#{helpDeskBean.service}" id="serviceID">
                <f:selectItem itemLabel="Select One" itemValue="" />
                    <f:selectItems value="#{helpDeskBean.groupChangeList}" var="item1" itemLabel="#{item1.serviceDesc}" itemValue="#{item1.serviceCode}" />
                </p:selectOneMenu>

            </p:panelGrid>
        </p:panel>
<p:commandButton value="Submit" actionListener="#{helpDeskController.createHDRequest}"/>
    </h:form>
</h:body>


person Kranthi Sama    schedule 12.02.2014    source источник
comment
Посмотрите в консоли javascript (на вкладке сети) для подсказок. Возможно, вы пропустили ошибку проверки/конверсии.   -  person kolossus    schedule 18.02.2014


Ответы (1)


В событии изменения ajax второго раскрывающегося списка вы обновляете идентификатор «serviceID». Если этот компонент не найден в вашем дереве DOM, вы получите сообщение об ошибке в консоли сервера, указывающее, что компонент «serviceID» не найден.

Если вы получили эту ошибку, это может быть возможной причиной. Укажите точный идентификатор компонента, который вы хотите обновить, проверив источник просмотра страницы.

Надеюсь это поможет.

person Srikanth Ganji    schedule 12.02.2014
comment
Извините, проблема с копированием и вставкой ... на самом деле уже существует компонент с serviceId .. Пожалуйста, смотрите мои правки .. - person Kranthi Sama; 13.02.2014
comment
OK. Тогда вы можете описать, что именно не работает для вас. Добавьте атрибут process=@this,commaseperatedcomponentIdsToProcess на свою командную кнопку и попробуйте. - person Srikanth Ganji; 13.02.2014