如何以编程方式 ajax 更新支持 bean 中的特定组件
Posted
技术标签:
【中文标题】如何以编程方式 ajax 更新支持 bean 中的特定组件【英文标题】:How to programmatically ajax-update specific component in backing bean 【发布时间】:2013-04-12 15:45:07 【问题描述】:有没有办法对特定组件进行 ajax 更新,例如支持 bean 中的 <h:form>
?
我使用RequestContext#execute()
尝试了以下操作,
RequestContext context = RequestContext.getCurrentInstance();
context.execute("monitorVehicleForm.update()");
但是这似乎没有任何效果。
【问题讨论】:
到目前为止你尝试过什么? 什么是“表格”或“数据表”? 看到这个Trigger Component refresh from javascript 【参考方案1】:RequestContext#execute()
仅执行作为参数传入的任意 JavaScript 代码。它不会对组件的客户端表示进行 ajax 更新。
您需要 RequestContext#update()
而不是在其中传递要更新组件的客户端 ID。
context.update("monitorVehicleForm");
这与<p:commandXxx ... update="monitorVehicleForm">
的效果完全相同。只要你有一个
<h:form id="monitorVehicleForm">
没有任何NamingContainer
父级,因此有一个
<form id="monitorVehicleForm" name="monitorVehicleForm" ...>
在生成的 html 中。
另见:
How to find out client ID of component for ajax update/render? Cannot find component with expression "foo" referenced from "bar"【讨论】:
以上是关于如何以编程方式 ajax 更新支持 bean 中的特定组件的主要内容,如果未能解决你的问题,请参考以下文章
如何以编程方式将 Java CDI 托管 bean 注入(静态)方法中的局部变量