Anzeige facesontext message in pop-up für die Validierung von Eingaben in ein Dialogfeld

Habe ich Zweifel, wie zu zeigen facescontext-Nachrichten in einem Dialogfenster.
Dies nutzt primefaces 4.0, JSF.

Will ich die Anzeige einer Nachricht im facescontext pop-up-dialog (erscheint beim klicken auf eine Befehlsschaltfläche in einem anderen Dialogfeld).

Methode 1 :
Nehme an, dass die view-Datei ist wie

<p:commandButton id=”btn  oncomplete=”dlg.show()”/>
<p:dialod id=”dlg_id widgetVar=”dlg”>
    <h:inputText id=”name”/>
    <p:commandButton id=”btn1 actionListener=”someBean.someMethod()” oncomplete=”dlg1.show()”/>
</p:dialog>
<p:dialog id=”dlg1_id widgetVar=”dlg1”>
    <h:messages id=”error_msgs value=”#{facesContext.messageList}”
</p:dialog>

BackingBean (someBean)

public void someMethod() {
        RequestContext.getCurrentInstance().addCallBackParam(“facesMessageAvailable”,true);
        FacesContext.getCurrentInstance().addMessage(“error_msgs”,new FacesMessage(…,”Name is Required”,…));
    }

Der oben beschriebenen Methode zeigt die pop-up-box. Aber der angezeigte Wert in der pop-up-box ist wie javax.beans.context@1ggh34ea
Dann habe ich versucht, mit Hilfe des UI-Komponente-Bindung.

Methode 2 :

View-Datei

<p:commandButton id=”btn  oncomplete=”dlg.show()”/>
<p:dialog id=”dlg_id widgetVar=”dlg”>
    <h:inputText id=”name”/>
    <p:commandButton id=”btn1 actionListener=”someBean.someMethod()” oncomplete=”dlg1.show()”/>
</p:dialog>
<p:dialog id=”dlg1_id widgetVar=”dlg1”>
    <h:outputText id=”msg binding=”someBean.outText”/>
</p:dialog>

BackingBean (someBean)

private UIComponent outText;
//getter and setter of outText
public void someMethod() {
    RequestContext.getCurrentInstance().addCallBackParam(“facesMessageAvailable”,true);
    FacesContext.getCurrentInstance().addMessage(outText.getClientId() , new FacesMessage(…,”Name is Required”,…));
}

Aber dies zeigt eine leere leere pop-up.
Dann versuchte ich mit JOptionPane. Aber es produziert einige logische Fehler.

Ich würde jede Hilfe zu schätzen wissen.
Die syntax falsch, da tippte ich den code aus meinem Gedächtnis.

InformationsquelleAutor Eva Mariam | 2014-01-01

Schreibe einen Kommentar