2016-07-12 1 views
2

私はPrime Facesで作業していますが、インデックスページでユーザーを開始したい場合は、ボタンを押してインデックスページをリロードし、コンテキストメッセージを表示する機能(registrarUsuario)を呼び出してください。私の問題は、私のアプリケーションがメッセージを表示していないことです。 これは私のコードです:JSFアプリケーションがコンテキストメッセージを表示しないのはなぜですか?

いるindex.xhtml:

<html xmlns="http://www.w3.org/1999/xhtml" 
     xmlns:h="http://xmlns.jcp.org/jsf/html" 
     xmlns:p="http://primefaces.org/ui" 
     xmlns:ui="http://xmlns.jcp.org/jsf/facelets" 
     xmlns:f="http://xmlns.jcp.org/jsf/core" 
     xmlns:b="http://bootsfaces.net/ui"> 
... 
<h:form> 
    <b:commandButton action = "#{registroUsuario.registrarUsuario}" value = "call function"/> 
</h:form> 
.... 

RegistroUsuario.java:

public void registrarUsuario() throws IOException, Exception { 
    try { 
     //another code 
     FacesMessage message = new FacesMessage(":D", "message"); 
     FacesContext context = FacesContext.getCurrentInstance(); 
     context.addMessage(null, message); 
    } catch (Exception e) { 
     FacesMessage message = new FacesMessage("Falla", e.toString()); 
     FacesContext context = FacesContext.getCurrentInstance(); 
     context.addMessage(null, message); 
    }finally{ 
     FacesContext.getCurrentInstance().getExternalContext().redirect("index.xhtml"); 
    } 

} 

ありがとうございます!

答えて

0

PrimeButton showcaseによると、デフォルトではボタンはAjaxなので、更新するパラメータを更新するビューに入れるか、パラメータajax = "false"を追加する必要があります。

<p:commandButton value="Ajax Submit" id="ajax" update="growl" actionListener="#{buttonView.buttonAction}" styleClass="ui-priority-primary" /> 
<p:commandButton value="Non-Ajax Submit" id="nonAjax" actionListener="#{buttonView.buttonAction}" ajax="false" /> 

最初のオプションは、更新属性、または第二のものを持っているかに注意してください

= "false" を アヤックス
関連する問題