2014-05-05 63 views
0

我需要調用一個方法而不點擊任何Boutton,但我沒有意識到。打開頁面時調用一個方法xhtml [primefaces]

我打電話跟我創建了一個名爲

方法,這是按鈕的代碼的按鈕的傳統方式方法:

<p:commandButton process="@form" value="ecouter" action="#{alarmeBean.alarme}" /> 

但我需要的是調用方法時開放我的網頁(方法是驚人的)??

回答

0

這裏有一個方法來調用方法,在每個HTTP請求的支持bean(包括清新的頁面):

<f:metadata> 
    <f:event listener="#{alarmeBean.alarme}" type="preRenderView" /> 
</f:metadata> 

否則,調用方法一旦頁面只有加載(對於第1次),你應該通過「post構造」來註釋它,以便在構造的bean階段調用它(它不應該是@RequestScoped以避免向服務器端發送請求,這會使頁面刷新,然後再次調用方法,這是不想要):

@PostConstruct 
public void alarme(){ 
    ... 
} 
+0

THX 它是功能性的,但因爲我有標籤 ,其與每個更新一個表在我的網頁XHML 刷新它調用方法 – user3516948

+0

已更新的答案。 – Omar

+0

不起作用:/ – user3516948

0

像奧馬爾說的使用preRenderView。我的意思是:

<f:metadata> 
    <f:event listener="#{alarmeBean.alarme}" type="preRenderView" /> 
</f:metadata> 

爲了避免調用它在每個調查刷新檢查,如果這是從民意調查Ajax請求,或者它在alarme方法如下面一個完整的GET請求。

FacesContext fc = FacesContext.getCurrentInstance(); 
if (fc.getPartialViewContext().isAjaxRequest()) { 
    // ignore this request, we are only interested in GET full page requests 
    return; 
} 
相關問題