我正在尝试在进行自动填充选择时显示消息。它显示了该消息,但是当我再次尝试使用自动完成时,它不会执行我的completeMethod。
查看:
<p:messages id="gNewDiagnostic" for="guau" escape="false"/>
<p:panelGrid columns="2" styleClass="panelGridForm">
<p:outputLabel value="Patología:" for="pathologyND"/>
<p:autoComplete id="pathologyND" value="#{newDiagnostic.pathology}" completeMethod="#{newDiagnostic.completeTextPathology}">
<p:ajax event="blur" listener ="#{newDiagnostic.warningGest}"/>
</p:autoComplete>
<p:outputLabel value="Estado del Diagnóstico:" for="stateDiagnosticND" />
<p:selectOneMenu id="stateDiagnosticND" value="#{newDiagnostic.stateDiagnostic}">
<p:ajax update="gNewDiagnostic" listener="#{newDiagnostic.warningGest}">
</p:ajax>
<f:selectItem itemLabel="Seleccione un Item" itemValue="" />
<f:selectItem itemLabel="Sospecha" itemValue="sospecha" />
<f:selectItem itemLabel="Confirmado" itemValue="confirmado" />
</p:selectOneMenu>
</p:panelGrid>
Managed Bean:
public void warningGest() {
boolean type = diseasesFacade.diseaseType(pathology);
stateGes = true;
if (type == true && stateDiagnostic.equals("confirmado")) {
FacesContext.getCurrentInstance().addMessage("guau", new FacesMessage(FacesMessage.SEVERITY_WARN, "Advertencia", "La patología " + pathology + " es una enfermedad GES. "));
stateGes = false;
}
}
答案 0 :(得分:1)
解决。
问题在于嵌套在父窗体中的咆哮。咆哮错过了一些属性,并且在将消息添加到上下文后,属性autoUpdate=true
导致所有ajax处理失败。
删除咆哮声解决了问题。