Primefaces Command按钮在选择框更新后不起作用

时间:2014-02-12 03:05:02

标签: jsf jsf-2 primefaces jsf-2.2 selectonemenu

我的页面中有四个选择菜单。我的问题很奇怪,即如果你单击提交没有选择任何下拉菜单,它工作正常。但是当我选择子组下拉菜单时,如果我单击提交按钮,它就不会调用它打算调用的方法...继承我的代码..

<?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>

1 个答案:

答案 0 :(得分:0)

在第二个下拉列表的ajax更改事件中,您正在更新ID“serviceID”。如果在DOM树中找不到此组件,则服务器控制台中会出现错误,指出未找到组件“serviceID”。

如果您收到该错误,则可能是可能的原因。通过检查页面查看源,提供要更新的组件ID的确切ID。

希望这有帮助。