3

次の URL があります。http://host:port/page.xhtml?response=something

response==something の場合、ap:message をレンダリングしたい

私は次のコードを持っています:

 <h:panelGroup rendered="#{param.response == 'something'}">
            <h:outputText value="message" /> 
       </h:panelGroup>

これは<div>message</div>

<p:messages /> or <p:growl />response==something の場合、a とその値「メッセージ」をレンダリングしたい

これと他の何かをコーディングするのを手伝ってください:

  • p:messages または p:growl に値を送信するために管理された Bean が必要ですか?
  • から p:messages または p:growl を呼び出す必要があります<p:commandButton />か?
  • <h:body onload="callFunction()">h:body がテンプレート xhtml <ui:insert name="content"></ui:insert>にあり、ビューが<ui:composition ... <ui:define name="content" >他の xhtml にあり、h:body がいくつかのビューに共通しているため、使用できません
4

1 に答える 1

1

FacesContext#addMessage()コンテキストにメッセージを追加するには、実際にを使用する必要があります。最初のリクエストでは、最善の策は

<f:metadata>
    <f:viewParam name="response" value="#{bean.response}"/>
    <f:event type="preRenderView" listener="#{bean.init}" />
</f:metadata>

private String response;

public void init() {
    if (response != null) { 
        FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(
            FacesMessage.SEVERITY_INFO, response, null));
    }
}

ちなみに、別のメッセージを使用したり、クライアントIDを持つ顔のメッセージのみを表示し<p:messages globalOnly="true">たりすることもできます。<p:growl globalOnly="true">null

参照:

于 2012-12-13T13:22:50.117 に答える