我的页面中有四个选择菜单。我的问题很奇怪,即如果你单击提交没有选择任何下拉菜单,它工作正常。但是当我选择子组下拉菜单时,如果我单击提交按钮,它就不会调用它打算调用的方法...继承我的代码..
<?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>
答案 0 :(得分:0)
在第二个下拉列表的ajax更改事件中,您正在更新ID“serviceID”。如果在DOM树中找不到此组件,则服务器控制台中会出现错误,指出未找到组件“serviceID”。
如果您收到该错误,则可能是可能的原因。通过检查页面查看源,提供要更新的组件ID的确切ID。
希望这有帮助。