我需要調用一個方法而不點擊任何Boutton,但我沒有意識到。打開頁面時調用一個方法xhtml [primefaces]
我打電話跟我創建了一個名爲
方法,這是按鈕的代碼的按鈕的傳統方式方法:
<p:commandButton process="@form" value="ecouter" action="#{alarmeBean.alarme}" />
但我需要的是調用方法時開放我的網頁(方法是驚人的)??
我需要調用一個方法而不點擊任何Boutton,但我沒有意識到。打開頁面時調用一個方法xhtml [primefaces]
我打電話跟我創建了一個名爲
方法,這是按鈕的代碼的按鈕的傳統方式方法:
<p:commandButton process="@form" value="ecouter" action="#{alarmeBean.alarme}" />
但我需要的是調用方法時開放我的網頁(方法是驚人的)??
這裏有一個方法來調用方法,在每個HTTP請求的支持bean(包括清新的頁面):
<f:metadata>
<f:event listener="#{alarmeBean.alarme}" type="preRenderView" />
</f:metadata>
否則,調用方法一旦頁面只有加載(對於第1次),你應該通過「post構造」來註釋它,以便在構造的bean階段調用它(它不應該是@RequestScoped
以避免向服務器端發送請求,這會使頁面刷新,然後再次調用方法,這是不想要):
@PostConstruct
public void alarme(){
...
}
像奧馬爾說的使用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;
}
THX 它是功能性的,但因爲我有標籤
,其與每個更新一個表在我的網頁XHML 刷新它調用方法 – user3516948已更新的答案。 – Omar
不起作用:/ – user3516948