web-dev-qa-db-ja.com

プログラムでajaxを実行する方法-バッキングBeanの特定のコンポーネントを更新する

バッキングBeanの_<h:form>_などの特定のコンポーネントをajax更新する方法はありますか?

RequestContext#execute() 、を使用して次のことを試しました

_RequestContext context = RequestContext.getCurrentInstance();
context.execute("monitorVehicleForm.update()");
_

しかし、それは何の効果もなかったようです。

10
Venkat Maridu

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で。

参照:

13
BalusC