2014-10-07 58 views
2

首先,我很抱歉我的英語不好。 我剛與JSF合作,所以我確信這是一個非常愚蠢的問題,但我找不到任何幫助我的帖子。我在我的項目中使用ajax poll,因爲我需要刷新頁面中的組件。我在primefaces 5展示中創建了一個例子。在這個例子中,有一個計數器每3秒遞增一次。我以完全相同的方式使用了示例的代碼,但計數器從不增加。我認爲這可能是我在項目中使用的糟糕配置。此外,它的顯示,在Eclipse控制檯下一條消息(我不知道這是否有事情做與我的問題):Ajax民意調查不適用於我的項目

信息:沒有定義的狀態保存方法,假設默認的服務器 狀態保存

這裏是我的SORCE代碼:

<!DOCTYPE HTML> 
<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:p="http://primefaces.org/ui"> 


<h:head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"></meta> 
<title>Insert title here</title> 

</h:head> 
<h:body> 
    <h:form> 
     <h:outputText id="txt_count" value="#{globalCounterView.count}"/> 
     <p:poll interval="3" listener="#{globalCounterView.increment}" update="txt_count"/> 
    </h:form> 
</h:body> 
</html> 

在豆:

import java.io.Serializable; 

import javax.faces.bean.ApplicationScoped; 
import javax.faces.bean.ManagedBean; 
import javax.faces.event.ActionEvent; 

@ManagedBean 
@ApplicationScoped 
public class GlobalCounterView implements Serializable{ 

    /** 
    * 
    */ 
    private static final long serialVersionUID = 1L; 
    private int count; 

    public int getCount() { 
     return count; 
    } 


    public void increment(ActionEvent actionEvent) { 
     count++; 
    } 

    public void setCount(int count) { 
     this.count = count; 
     } 
} 

的web.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> 
    <display-name>SAEGraph</display-name> 
    <welcome-file-list> 
    <welcome-file>index.html</welcome-file> 
    <welcome-file>index.htm</welcome-file> 
    <welcome-file>index.jsp</welcome-file> 
    <welcome-file>default.html</welcome-file> 
    <welcome-file>default.htm</welcome-file> 
    <welcome-file>default.jsp</welcome-file> 
    </welcome-file-list> 
    <servlet> 
    <servlet-name>Faces Servlet</servlet-name> 
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
    </servlet> 

最後,我想要做的事情是從更新週期支持豆一primeface組件。另外,你可以告訴我,如果存在任何其他方式來做到這一點不使用調查? 謝謝並再次抱歉,英語不好。

我使用primefaces 5.0,Tomcat的7,Eclipse版本:4,JDK 7

回答

1

只需卸下論點increment方法。

public void increment(ActionEvent actionEvent) { 
    count++; 
} 

到:

public void increment() { 
    count++; 
} 
+0

非常感謝,我做了很多的變化後,我把那些失敗的論點,並沒有注意到 – Glenda 2014-10-07 19:47:28

+0

不客氣,一切發生的時間=) – Pellizon 2014-10-07 20:48:36