Este es el código:
<p:ajax event="eventResized" process="@this calendar" listener="#{bean.eventResized}" oncomplete="resizeComplete()"/>
eventReized
invocado por el cual extendido desde y contiene alguna propiedad. ¿Puedo comprobar dentro llamar a su valor y pasar el resultado a EventResizeBehavior
AjaxBehaviorEvent
<p:ajax....>
oncomplete="resizeComplete(result)"
Algo así
<p:ajax event="eventResized" process="@this calendar" listener="#{bean.eventResized}" oncomplete="resizeComplete(#{eventResized.id == 0})"/>
Solución
PrimeFaces no lo admite. Cualquier expresión EL en el atributo se evalúa inmediatamente durante la respuesta de representación de ese documento HTML, no durante la finalización de la llamada ajax asociada. Básicamente, el código JavaScript generado por el atributo contiene el valor antiguo tal como estaba durante la carga de la página.oncomplete
oncomplete
Su mejor opción es usar RequestContext#addCallbackParam()
para agregar una propiedad al objeto específico de PrimeFaces que esté disponible en el ámbito.args
oncomplete
RequestContext.getCurrentInstance().addCallbackParam("result", eventResized.getId() == 0);
<p:ajax ... oncomplete="resizeComplete(args.result)" />
Una alternativa es usar RequestContext#execute()
en lugar de instruir mediante programación a PrimeFaces para que ejecute una pieza de JavaScript al completar la solicitud ajax.oncomplete
RequestContext.getCurrentInstance().execute("resizeComplete(" + (eventResized.getId() == 0) + ")");