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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich habe versucht, Ihr Methode 1 und fanden, dass es einige Fehler:
Mit
<h:messages>
1.Sollten Sie
update
Attribut des<p:commandButton>
.2.Keine Notwendigkeit, geben Sie
value=”#{facesContext.messageList}”
von<h:messages>
(Und es gibt auch kein Attribut).So, nachdem ich diese, sollte Ihr code wie dieser:
Und das Ergebnis sieht wie folgt aus:
Mit
<h:message>
Es ist mit
<h:messages>
oben, während Sie verwenden möchten, können<h:message>
wie Sie scheint, will die Nachricht, die show fürerror_msgs
. Dies zu tun, müssen Sie die client_id statt id, so versuchen Sie dies:Seite:
Backing-Bean:
Beachten Sie, dass
j_idt5
ist die client_id des<h:inputText>
.Wie kann ich wissen, die client_id? Nur der rechten Maustaste auf die Seite im browser Ansicht Quellcode der Seite, schauen Sie auf die Komponente, die Sie interessiert und finden Sie die cliend_id.
Du bist herzlich willkommen!.
InformationsquelleAutor nosnhoj