jsf - 如何在操作方法期间更新的 PrimeFaces oncomplete 属性中使用 EL

标签 jsf primefaces jsf-2 el

这是代码:

 <p:ajax event="eventResized" process="@this calendar"  listener="#{bean.eventResized}" oncomplete="resizeComplete()"/>
eventReizedEventResizeBehavior 调用从 AjaxBehaviorEvent 扩展而来它包含一些属性。可以进去看看吗<p:ajax....>调用它的值并将结果传递给 oncomplete="resizeComplete(result)"
类似的东西
<p:ajax event="eventResized" process="@this calendar"  listener="#{bean.eventResized}" oncomplete="resizeComplete(#{eventResized.id == 0})"/>

最佳答案

PrimeFaces 不支持它。 oncomplete 中的任何 EL 表达式属性在该 HTML 文档的呈现响应期间被立即评估,而不是在关联的 ajax 调用的 oncomplete 期间。基本上,由 oncomplete 生成的 JavaScript 代码属性包含页面加载期间的旧值。

您最好的选择是使用 RequestContext#addCallbackParam() 将属性添加到 PrimeFaces 特定 argsoncomplete 中可用的对象范围。

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) + ")");

关于jsf - 如何在操作方法期间更新的 PrimeFaces oncomplete 属性中使用 EL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30190214/

相关文章:

jsf - 如何使用 JSF 2.0 复合组件实现动态列表?

java - ZipInputStream 中的 NullPointerException

jsf - 如果 jsf 中的其他条件

validation - 我应该在 JSF 1.2/2.0/2.1 中使用什么 DTD 来验证我的配置 XML?

validation - 如何自定义JSF验证错误消息

java - JPA中惰性对象的奇怪初始化

java - Glassfish 3.1.1 重新部署时出错

css - Servlet Filter 无法访问基于 JSF 的应用程序中的 css、资源和 primefaces

java - 在 primefaces 时间表上每天显示可编辑的事件

java - 在 JSF2 中填充 selectonemenu 时无法实例化类