这是代码:
<p:ajax event="eventResized" process="@this calendar" listener="#{bean.eventResized}" oncomplete="resizeComplete()"/>
eventReized
调用的{p> EventResizeBehavior
从AjaxBehaviorEvent
扩展而且包含一些属性。我可以在<p:ajax....>
内查看其值并将结果传递给oncomplete="resizeComplete(result)"
像这样的东西
<p:ajax event="eventResized" process="@this calendar" listener="#{bean.eventResized}" oncomplete="resizeComplete(#{eventResized.id == 0})"/>
答案 0 :(得分:7)
PrimeFaces不支持它。在{HTML}文档的呈现响应期间,不会在关联的ajax调用的未完成期间立即评估oncomplete
属性中的任何EL表达式。基本上,oncomplete
属性生成的JavaScript代码包含页面加载期间的旧值。
您最好的选择是使用RequestContext#addCallbackParam()
将属性添加到args
范围内的PrimeFaces特定oncomplete
对象。
RequestContext.getCurrentInstance().addCallbackParam("result", eventResized.getId() == 0);
<p:ajax ... oncomplete="resizeComplete(args.result)" />
另一种方法是使用RequestContext#execute()
代替oncomplete
以编程方式指示PrimeFaces在完成ajax请求时执行一段JavaScript。
RequestContext.getCurrentInstance().execute("resizeComplete(" + (eventResized.getId() == 0) + ")");