当前位置: 首页 > 知识库问答 >
问题:

primefaces轮询动态间隔

艾鹭洋
2023-03-14
@ViewScoped
@Named
public class SampleBean implements Serializable {

    private int interval = 1;


    public void execute() {
        switch (interval) {
            case 1:
                System.out.println("1 Executed ...");
                break;
            case 2:
                System.out.println("2 Executed ...");
                break;
            case 3:
                System.out.println("3 Executed ...");
                break;
        }
    }

    public int getInterval() {
        return interval;
    }

    public void setInterval(int interval) {
        this.interval = interval;
    }
}    

和此xhtml:

<h:form>
        <p:selectOneButton value="#{sampleBean.interval}">
            <f:selectItem itemLabel="1" itemValue="1"/>
            <f:selectItem itemLabel="2" itemValue="2"/>
            <f:selectItem itemLabel="3" itemValue="3"/>
        </p:selectOneButton>

        <p:poll interval="#{sampleBean.interval}" listener="#{sampleBean.execute}" id="poll"/>

    </h:form>    

我想动态更新primefaces轮询组件的间隔时间,但不改变我的示例代码。睡眠总是每1秒执行一次。
我的代码中有什么错误?

共有1个答案

何麻雀
2023-03-14

您需要告诉p:poll组件重新提取它的backing bean值。您可以通过调用组件上的新呈现阶段(通过PrimeFacesUpdate或通过f:ajaxRender)轻松地实现这一点。

所以要想成功,你只需要做这样的事情,

<h:form>
    <p:selectOneButton value="#{sampleBean.interval}">
        <f:selectItem itemLabel="1" itemValue="1"/>
        <f:selectItem itemLabel="2" itemValue="2"/>
        <f:selectItem itemLabel="3" itemValue="3"/>
        <f:ajax render="@form"/>
    </p:selectOneButton>
    <p:poll interval="#{sampleBean.interval}" listener="#{sampleBean.execute}" id="poll"/>
</h:form>    

注意上面的f:ajax调用

 类似资料:
  • 客户使用此模式: Apache Camel和CXF JMS接收器 它们在内部使用Spring MDP(消息驱动POJO)来实现它们的消息接收器 它们部署在IBM WebSphere Application Server 7上 队列管理器是IBM Websphere MQ 6 Spring MDP使用JNDI队列连接工厂绑定到队列管理器--支持连接池和会话池

  • 问题内容: 我正在研究ajax长期轮询,但感到困惑。传统的ajax调用和长时间轮询有什么不同 此示例仅以递归方式调用服务器。与setInterval中的传统调用不同。 问题答案: 顾名思义,“ 长时间轮询” 意味着长时间轮询某些内容。 这是实际过程的开始,您对服务器上的某个脚本进行ajax调用,在本例中为,您需要使服务器脚本(例如)足够智能,以便仅在所需数据可用时才响应请求,该脚本应等待指定的时间

  • 我有一个像这样的动态表 托管Bean 和xhtml 我正在使用primefaces 4。

  • 我有一个Kafka主题,并为其附加了1个消费者(主题只有1个分区)。现在对于超时,我使用默认值(心跳:3秒,会话超时:10秒,轮询超时:5分钟)。 根据留档,轮询超时定义消费者必须在其他代理将该消费者从消费者组中删除之前处理消息。现在假设,消费者只需1分钟即可完成处理消息。 现在我有两个问题

  • 问题内容: 我正在使用primefaces 3.3.1和JSF 2(Mojarra 2.1.9)。 我有一个包含DataTable组件和Dialog的页面,以显示DataTable条目的详细信息。当我有一个对话框时,这非常简单。我要尝试允许用户同时打开两个或三个带有不同条目详细信息的dailog。有人知道如何从服务器获取整个AJAX对话框,而不仅仅是对话框内容吗? 问题答案: 是的,我做到了。为此

  • 在我的应用程序中,我想使用一个动态tabView,其中每个选项卡都有一个不同页面的< code>ui:include。我有一个扩展< code>Tab的< code>TabObject列表。< code>TabObject有一个xhtml页面作为字符串属性: 在我的第一次尝试中,我想动态添加选项卡: 但是不适用于使用此技术的变量。到目前为止,我的解决方案是: 这是我的方法: 在事件回调中,我无法获