showcase example enable disable jsf button primefaces

jsf - example - <p: commandButton> no funciona cuando disable="true" inicialmente



primefaces showcase (1)

Al igual que con el atributo rendered , JSF vuelve a evaluar el atributo disabled en el lado del servidor durante el procesamiento del formulario enviado como parte de la protección contra solicitudes manipuladas y similares. Sin embargo, lo habilita / deshabilita JS sin notificar los cambios al servidor.

Debe asegurarse de que el valor del atributo disabled evalúe false durante la solicitud siempre que desee que el botón se habilite durante el procesamiento del envío del formulario. Por ejemplo, vincúlelo a una propiedad boolean de un bean de ámbito de vista configurado por el otro botón.

<h:commandButton disabled="#{bean.laughDisabled}" />

Ver también:

Este es mi ManagedBean:

@Named(value = "mrBean") @RequestScoped public class MrBean { public void laugh() { System.out.println("HAHAHA"); } public void prepareToLaugh() { System.out.println("Drink water."); } }

Y esta es la versión de trabajo de mi CommandButton:

<p:commandButton actionListener="#{mrBean.laugh}" widgetVar="laughtButton" value="Laugh" oncomplete="laughButton.disable();" />

Cuando hice clic en el botón de arriba, vi HAHAHA y el botón está deshabilitado. Sin embargo, cuando configuro el atributo de disable de laughButton en true , el botón ya no funciona:

<p:commandButton actionListener="#{mrBean.laugh}" widgetVar="laughtButton" value="Laugh" disabled="true" oncomplete="laughButton.disable();" /> <p:commandButton actionListener="#{mrBean.prepareToLaugh}" value="Prepare to laugh" oncomplete="laughButton.enable();" />

Cuando hago clic en el segundo botón, veo Drink water y el primer botón está habilitado. Sin embargo, cuando hago clic en el 1er botón, no pasa nada.

Estaría muy agradecido si alguien pudiera darme un consejo sobre cómo debería abordar este problema. Estoy usando PrimeFaces 3.0 RC2.