PrimeFaces民意调查

时间:2014-06-12 14:54:14

标签: java ajax mobile primefaces

我尝试建立一个我放置时钟的网站。不是默认的primefaces时钟因为我需要实际时间而不仅仅是为了显示它。我使用Netbeans8.0,Java8.0,Primefaces5.0,并建立移动网站。

所以我尝试了p:民意调查,但这对我不起作用。

@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%;

我使用这个默认的primefaces示例,但只显示0并且它没有递增......

有人有任何想法吗?

!!!编辑:Primefaces Mobile(这里:pm)不支持轮询。所以它只适用于基本的曲面。

4 个答案:

答案 0 :(得分:1)

好吧,我看一下你的情况,我做了一个关于它的例子,它对我有用!

我创建了一个类似于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。

答案 1 :(得分:0)

添加

<h:outputScript library="primefaces" name="primefaces.js" />
h:body 里面的

为我解决了。我使用的是PrimeFaces 5.1.20

答案 2 :(得分:0)

对我来说,将这一行添加到<h:body>有帮助:

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

答案 3 :(得分:0)

您是否调试了实际的navigationTo.increment方法,并检查了民意调查是否实际进入?

您似乎缺少民意调查中的属性,如果您想触发后端方法,并在加载页面后立即开始实际民意调查,请添加以下内容:

process="@this" autoStart="true"