ページがロードされた後、たとえば10秒ごとにJSFでajaxイベントを発生させることは可能ですか?
つまり:
<f:ajax listener="#{bean.mymethod()}" />
ページが読み込まれてから 10 秒ごとにこのメソッドを呼び出したいと思います。JavaScript の更新でページ全体をリロードしたくありません。
このプロセスは「ポーリング」と呼ばれます。
この機能は、標準の JSF では提供されていません<f:ajax>
。サードパーティの JSF コンポーネント ライブラリを探す必要があります。質問の履歴に基づいて、あなたは PrimeFaces を使用しているか、少なくともすでに使い慣れています。その場合、その<p:poll>
コンポーネントをジョブに使用できます。コードが以下に抽出されている PrimeFaces<p:poll>
ショーケース ページも参照してください。
意見:
<h:form id="form">
<h:outputText id="txt_count" value="#{counterBean.count}" />
<p:poll interval="3"
listener="#{counterBean.increment}" update="txt_count" />
</h:form>
豆:
public class CounterBean implements Serializable{
private int count;
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
public void increment() {
count++;
}
}
したがって、特定のケースでは、次のようなものが必要です。
<p:poll interval="10" listener="#{bean.mymethod}" />
使用する
<a4j:poll action="#{bean.mymethod()}" interval="10000"/>