JSF之定时刷新(转)
用a4j:poll可以实现jsf页面定时刷新
下面是一个示例
<a4j:region>
<h:form>
<a4j:poll interval="2500" reRender="list"/>
</h:form>
</a4j:region>
其中,interval="2500"是多长时间刷新一次,单位是毫秒,示例中2.5秒刷一次
reRender="list" 是刷新的内容,list是要刷新控件的id
ps:巧用两个a4j:poll控制刷新
示例如下
<a4j:region>
<h:form>
<a4j:poll id="list1" interval="2500" reRender="list"/>
</h:form>
</a4j:region>
<a4j:region>
<h:form>
<a4j:poll id="list" interval="2500"
enabled="#{socketInspectWindow.map['socketInspectTable'].refreshFlag}"
actionListener="#{socketInspectWindow.refreshAction}"
reRender="logInfo,importLogInfo,soundForm">
</a4j:poll>
</h:form>
</a4j:region>
其中enabled="#{socketInspectWindow.map['socketInspectTable'].refreshFlag}"是一个boolean型变量,当需要刷新的时候refreshFlag变成true,actionListener="#{socketInspectWindow.refreshAction}"做的事情是当刷新完以后将refreshFlag改回false
基本原理是第一个poll一直在刷新第二个poll,第二个poll中一旦refreshFlag变成true时,就立即执行刷新