是否可以在加载页面后使用JSF触发ajax事件,例如每隔10秒?
我的意思是:
<f:ajax listener="#{bean.mymethod()}" />
我想在加载页面后每隔10秒调用一次此方法。我不想通过JavaScript刷新来重新加载整个页面。
答案 0 :(得分:7)
此过程称为“轮询”。
标准JSF <f:ajax>
不提供此功能。您需要寻找第三方JSF组件库。根据您的question history,您使用的是PrimeFaces,或至少已经熟悉它。在这种情况下,您只需将其<p:poll>
组件用于该作业即可。另请参阅下面提取代码的the PrimeFaces <p:poll>
showcase page:
查看:
<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}" />
答案 1 :(得分:0)
使用
<a4j:poll action="#{bean.mymethod()}" interval="10000"/>