使用JSF自动刷新div

使用JSF自动刷新div,jsf,jsf-2,Jsf,Jsf 2,如何使用JSF每5秒自动刷新一次div。我有一个id=statusBlock的div,我希望它内部的状态和注释每隔5秒自动更新一次,这样用户就可以自动获得所有状态更新,而不刷新整个页面。我已经搜索了stackoverflow站点,但是没有找到任何可以让我使用JSF的东西。您是否使用了任何组件库,比如Primefaces 如果是,则可以使用轮询组件 这里有一个showcase链接来举例说明:您是否使用任何组件库,如Primefaces 如果是,则可以使用轮询组件 这里有一个showcase链接来举

如何使用JSF每5秒自动刷新一次div。我有一个id=statusBlock的div,我希望它内部的状态和注释每隔5秒自动更新一次,这样用户就可以自动获得所有状态更新,而不刷新整个页面。我已经搜索了stackoverflow站点,但是没有找到任何可以让我使用JSF的东西。

您是否使用了任何组件库,比如Primefaces

如果是,则可以使用轮询组件


这里有一个showcase链接来举例说明:

您是否使用任何组件库,如Primefaces

如果是,则可以使用轮询组件


这里有一个showcase链接来举例说明:

这可以通过使用JavaScript函数来实现,该函数每隔一段时间对服务器进行一次调用

一个简单但不太奇特的例子是执行一个隐藏的
ui命令
,以便用户不能自己更新数据:

<script type="text/javascript">
    setInterval(function() { 
        document.getElementById('myForm:btnLoadData').submit();
        }, 5*1000);
</script>

<h:panelGroup id="divData" layout="block">
    <!-- content... -->
</h:panelGroup>
<h:form id="myForm">
    <h:commandButton id="btnLoadData" value="Hidden" action="#{bean.loadData}"
        style="display:none">
        <f:ajax execute="@form" render=":divData" />
    </h:commandButton>
</h:form>

setInterval(函数(){
document.getElementById('myForm:btnLoadData').submit();
}, 5*1000);

这可以通过使用JavaScript函数来实现,该函数每隔一段时间对服务器进行一次调用

一个简单但不太奇特的例子是执行一个隐藏的
ui命令
,以便用户不能自己更新数据:

<script type="text/javascript">
    setInterval(function() { 
        document.getElementById('myForm:btnLoadData').submit();
        }, 5*1000);
</script>

<h:panelGroup id="divData" layout="block">
    <!-- content... -->
</h:panelGroup>
<h:form id="myForm">
    <h:commandButton id="btnLoadData" value="Hidden" action="#{bean.loadData}"
        style="display:none">
        <f:ajax execute="@form" render=":divData" />
    </h:commandButton>
</h:form>

setInterval(函数(){
document.getElementById('myForm:btnLoadData').submit();
}, 5*1000);

在最近的帖子中,OP问答案是否可以使用普通JSF。很抱歉@Luigimendoza,但是OP是什么?在最近的帖子中,OP问答案是否可以使用普通JSF。很抱歉@Luigimendoza,但是OP是什么?如果我不想使用隐藏的UICommand,如果我只想刷新
,我需要做什么更改?您应该像前面解释的那样手动向服务器发出ajax请求。请注意,
ui命令
在很大程度上帮助您完成这项工作。此外,您也可以像PrimeFaces(如@RodrigoSasaki的回答中所述)一样使用处理此工作的第三方库。如果我删除
操作=“#{bean.loadData}”
,它会导致任何问题吗?它是mandatoyr吗?@AmlanKarmakar它不会造成任何危险,它只会发送一个POST请求,并且根本不会执行任何操作。@LuiggiMendoza:请解释一下ajax execute=“@form”中的@form。我是jsf的新手,正在尝试实现您的解决方案。如果我不想使用隐藏的UICommand,如果我只想刷新
,我需要做什么更改?您应该像前面解释的那样手动向服务器发出ajax请求。请注意,
ui命令
在很大程度上帮助您完成这项工作。此外,您也可以像PrimeFaces(如@RodrigoSasaki的回答中所述)一样使用处理此工作的第三方库。如果我删除
操作=“#{bean.loadData}”
,它会导致任何问题吗?它是mandatoyr吗?@AmlanKarmakar它不会造成任何危险,它只会发送一个POST请求,并且根本不会执行任何操作。@LuiggiMendoza:请解释一下ajax execute=“@form”中的@form。我是jsf的新手,试图实现您的解决方案的可能重复