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时,就立即执行刷新

你可能感兴趣的:(JSF)