我需要在不点击任何Boutton的情况下调用方法,但我没有意识到。
我用传统的方法调用方法,我创建了一个名为
的方法的按钮这是按钮的代码:
<p:commandButton process="@form" value="ecouter" action="#{alarmeBean.alarme}" />
但我需要在打开我的页面时调用该方法(方法是警告)??
答案 0 :(得分:0)
这是在每个HTTP请求(包括页面刷新)中调用辅助bean中的方法的方法:
<f:metadata>
<f:event listener="#{alarmeBean.alarme}" type="preRenderView" />
</f:metadata>
否则,要在页面仅加载(第一次)后调用方法,您应该通过&#34; post built&#34;为了在构造的bean阶段调用它(它不应该是@RequestScoped
以避免向服务器端发送请求,这会使页面刷新,然后再次调用该方法,这不是期望的):
@PostConstruct
public void alarme(){
...
}
答案 1 :(得分:0)
像奥马尔一样使用preRenderView。我的意思是:
<f:metadata>
<f:event listener="#{alarmeBean.alarme}" type="preRenderView" />
</f:metadata>
为了避免在每个轮询刷新检查时调用它,如果这是来自poll的ajax请求,或者它是alarme
方法中的完整Get请求,如下所示。
FacesContext fc = FacesContext.getCurrentInstance();
if (fc.getPartialViewContext().isAjaxRequest()) {
// ignore this request, we are only interested in GET full page requests
return;
}