estoy tratando de mostrar el mensaje de los resultados de una validación de hecho en managed bean en el cuadro de diálogo, pero no se muestra en el diálogo sobre submit del formulario.
El favor de ayudarme en la fijación de este
Mi página JSF fragmento de diálogo con
<p:dialog header="Add LPC" id="lpcDlg" widgetVar="dlg" rendered="true"
appendToBody="true" resizable="true" modal="true" height="320px"
width="38%">
<h:form id="addLpc">
<div align="center" style="margin-bottom: 1px; padding-bottom: 1px;">
<h:outputLabel value="Add New LPC"
style="font-color:#000000;font-weight:bold;font-size:24px;padding-bottom:1px;"></h:outputLabel>
</div>
<div align="center">
<p:messages id="lpcDlgMsg" showDetail="false" autoUpdate="true"
closable="true" />
<p:messages id="lpcDlgMsg2" for="lpcDlgMessage" showDetail="false"
autoUpdate="true" closable="true" />
<h:panelGrid id="addLpcForm" columns="2" appendToBody="true">
<h:outputText value="LPC ID" />
<p:inputText id="lpcId" value="#{lpcBean.lpcId}" required="true"
requiredMessage="LPC ID is required">
<f:ajax event="blur" render="lpcDlgMsg" />
</p:inputText>
<h:outputText value="First Name" />
<p:inputText id="firstName" value="#{lpcBean.firstName}" />
.
.
.
.
</h:panelGrid>
</div>
<div align="center">
<p:commandButton id="submitButton" value="Submit" ajax="true"
update=":lpcForm:lpcDataTable,addLpc"
action="#{lpcBean.formSubmit}" oncomplete="dlg.hide()" />
<p:commandButton id="cancelButton" value="Cancel"
onclick="dlg.hide()" />
</div>
</h:form>
</p:dialog>
mensaje con id lpcDlgMsg2 es el mensaje que estoy tratando de mostrar en enviar.El otro mensaje es conseguir que se muestra correcto en el desenfoque.
Fragmento de el método que se llama en presentar
public void formSubmit()
{
if(resultSet.next())
{
int lpcIdCount=rs.getInt("lpcCount");
if(lpcIdCount!=0)
{
FacesContext.getCurrentInstance().addMessage("lpcDlgMessage", new FacesMessage(FacesMessage.SEVERITY_ERROR," ", "Duplicate LPCID"));
System.out.println("after display");
}
else
{
.
.
.
.
}
}
}
}
Esta es mi sugerencia:
Nota que he simplificado el código con el fin de evitar el uso de un managedbean.
Si quieres que tu managed bean para realizar la validación, el uso RequestContext para ejecutar de forma condicional el código que se cierre el cuadro de diálogo y quitar el oncomplete de Presentar botón.
Tienes que añadir esto de javascript en primer lugar dentro de la etiqueta head
Más cambios se
de acción para actionListener porque la acción ha de Cadena tipo de retorno.
Esto funcionará bien.