我尝试建立一个我放置时钟的网站。不是默认的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)不支持轮询。所以它只适用于基本的曲面。
答案 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"