2014-06-12 173 views
0

我試圖做一個網站,我放置一個時鐘。不是默認的primefaces時鐘,因爲我需要的實際時間不僅僅是爲了顯示它。我使用Netbeans8.0,Java8.0,Primefaces5.0,並且正在構建移動網站。PrimeFaces民意調查

所以我試了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(here:pm)不支持輪詢。所以它只適用於基本的素數。

+0

你試過來自PrimeFaces展示的簡單例子? http://www.primefaces.org/showcase/ui/ajax/poll.xhtml您也可以在瀏覽器的JavaScript控制檯中查看任何錯誤。最後,我會在偵聽器方法中設置一個斷點或println,以查看它是否被正確觸發。 – QueryLars

回答

0

好吧,我看你的情況,我做了一個例子,它適合我!

我創建了一個類似於你的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。

+0

對不起,我解決了這個問題。問題是Primefaces Mobile不支持輪詢。順便說一句,你的答案正在工作,因爲它必須。 – Guigreg

0

添加

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

^h內:身體解決了我。我使用PrimeFaces 5.1.20

0

對於我來說,加入這行來<h:body>幫助:

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

你調試的實際navigationTo.increment方法,並檢查了民意調查居然走了進去?

看來你是民意調查中缺少的屬性,如果你想盡快加載頁面觸發後端方法,並開始實際調查,補充一點:

process="@this" autoStart="true"