如何以编程方式 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 注入(静态)方法中的局部变量

如何使用ajax以编程方式在嵌套模式对话框中更改引导选择2中的默认选择选项?

如何以编程方式将搜索查询注入 Select2 v4?

如何以编程方式注册 JSF 托管 bean?

以编程方式更改 highcharts 中的图表标题

以编程方式获取当前页面