Java PrimeFaces民意测验

Java PrimeFaces民意测验,java,ajax,mobile,primefaces,Java,Ajax,Mobile,Primefaces,我试着制作一个放置时钟的站点。不是默认的primefaces时钟,因为我需要实际时间,而不仅仅是显示时间。我使用Netbeans8.0、Java8.0、Primefaces5.0,我正在构建一个移动站点 所以我尝试了p:poll,但它对我不起作用 @ViewScoped @ManagedBean(name = "navigationTo") public class NavigationTo implements Serializable{ private int number;

我试着制作一个放置时钟的站点。不是默认的primefaces时钟,因为我需要实际时间,而不仅仅是显示时间。我使用Netbeans8.0、Java8.0、Primefaces5.0,我正在构建一个移动站点

所以我尝试了p:poll,但它对我不起作用

@ViewScoped
@ManagedBean(name = "navigationTo")
public class NavigationTo implements Serializable{

    private int number;

    public int getNumber() {
        return number;
    }

    public void increment() {
        number++;
    }
}

<h:body>
        <pm:page id="index">
            <pm:header title="xyz"></pm:header>
            <pm:content>
                <h:form>
                    <p:growl id="growl" showDetail="true"/>
                    <h:outputText id="txt_count" value="#{navigationTo.number}" />
                    <p:poll interval="3" listener="#{navigationTo.increment}" update="txt_count" />
                    <p:graphicImage value="xyz.png" style="width: 30%;
@ViewScoped
@ManagedBean(name=“navigationTo”)
实现可序列化的公共类NavigationTo{
私有整数;
public int getNumber(){
返回号码;
}
公共空间增量(){
数字++;
}
}

好吧,我看看你的情况,我做了一个关于它的例子,它为我工作

我已经创建了一个类似于你的Bean的Bean

    @ViewScoped
    @ManagedBean(name="clockBean")
   public class clockBean implements Serializable{

        private  int number;

        public void increment(){
           number++;
        }

        public int getNumber() {
          return number;
        }

        public void setNumber(int number) {
          this.number = number;
        }
}
此外,我还创建了一个简单的网页

<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:p="http://primefaces.org/ui"
    xmlns:pe="http://primefaces.org/ui/extensions">
  <ui:composition template="/layout/template.xhtml">
  <ui:define name="body">
   <h:form id="form">
            <p:poll interval="1"
                listener="#{clockBean.increment}" update=":form" />
            <p:outputLabel value="#{clockBean.number}" />
    </h:form>
  </ui:define>
  </ui:composition> 

 </html>

它对我有用,我希望它能帮助你

我认为您的问题在于,您需要为网页中的不同组件使用id。例如,组件表单,它应该有一个id。

添加

<h:outputScript library="primefaces" name="primefaces.js" />


内h:身体为我解决了。我正在使用PrimeFaces 5.1.20,将这一行添加到帮助:

<h:outputScript library="primefaces/poll" name="poll.js" />

您是否调试了实际的navigationTo.increment方法,并检查了轮询是否确实进入了内部

您似乎缺少轮询中的属性,如果要触发后端方法,并在加载页面后立即启动实际轮询,请添加以下内容:

process="@this" autoStart="true"

您是否尝试过PrimeFaces showcase中的简单示例?您还可以查看浏览器中的JavaScript控制台,并检查是否有任何错误。最后,我将在您的侦听器方法中设置断点或println,以查看它是否正确触发。很抱歉,我解决了此问题。问题是Primefaces Mobile不支持轮询。顺便说一句,你的答案是有效的。