h:Nachrichten, nicht die Nachrichten anzeigen, wenn p:commandButton gedrückt wird
Ich habe ein problem mit der h:messages-tag in JSF, die einfach zeigt keine Meldungen. In der Glassfish log sind keine Fehler, wenn ich auf die Schaltfläche klicke.
Das setup ist wie folgt:
test.xhtml:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui"
xmlns:j="http://primefaces.org/ui"
xmlns:f="http://java.sun.com/jsf/core">
<h:head>
<title>test</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</h:head>
<h:body>
<h:messages globalOnly="true"/>
<h:form id="loginform">
<p:commandButton id="testButton" value="Test"
action="#{loginSessionBean.test()}" />
</h:form>
</h:body>
</html>
Mit Der SessionScopedBean:
@ManagedBean
@SessionScoped
public class LoginSessionBean implements Serializable {
private static final long serialVersionUID = 1L;
...
public String test(){
FacesContext fc = FacesContext.getCurrentInstance();
fc.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_WARN, "Test!", null));
return "";
}
InformationsquelleAutor hFonti | 2013-04-23
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sind Sie sendet ein ajax-request mit PrimeFaces
<p:commandButton>
. Ajax-Anfragen, die haben standardmäßig keine form von feedback (es sei denn, PrimeFaces'autoUpdate="true"
ist verwendet worden, irgendwo). Sollten Sie explizit angeben, teilen Sie die Ansicht, die Sie möchten, um zu aktualisieren, ajax-response.Eine Möglichkeit ist die Angabe der
update
Attribut auf<p:commandButton>
zeigen Sie die client-ID der<h:messages>
Komponente.Ein anderer Weg ist, um es zu ersetzen durch PrimeFaces
<p:messages>
hat eineautoUpdate
Attribut für den Zweck der automatischen update auf ajax-Antwort.Eine ganz andere alternative ist das deaktivieren ajax durch hinzufügen
ajax="false"
- Attribut der Schaltfläche, auf diese Weise ein synchrones postback durchgeführt wird, die effektiv führt zu einer vollständigen Seite aktualisiert, genau so wie die standard-JSF -<h:commandButton>
verhält, wenn Sie ohne<f:ajax>
.Siehe auch: