Hallo zusammen,
ich habe eine WebAnwendung die JSF 2.2 (MyFaces 2.2.6) und PrimeFaces 5.0 nutzt. Die Webseiten werden mit einem Template erstellt, das den Header, die Navigation und die Growl-Seite einbindet.
growl.xhtml sieht so aus.
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui">
<ui:composition>
<h:form id="growl" prependId="false">
<p:growl showDetail="true" showSummary="false" sticky="true" severity="fatal" />
<p:growl showDetail="true" showSummary="false" sticky="true" severity="error" />
<p:growl showDetail="true" showSummary="false" sticky="true" severity="info" />
<p:growl showDetail="true" showSummary="false" sticky="true" severity="warn" />
</h:form>
</ui:composition>
</html>
Dieses Layout-Template wird auch auf der WelcomePage verwendet, hier gibt es ein Login-Formular mit jeweils einer RequiredMessage an den Input-Feldern dran und einer Messages-Componente um diese anzuzeigen.
Das Problem ist jetzt, das die RequiredMessages sowohl mit der Messages-Componente angezeigt aber auch mit dem Growl. Ich möchte aber gerne, das diese nicht im Growl dargestellt wird.
WelcomePage.xhtml - Login-Formular
<h:form id="formLogin" enctype="multipart/form-data" styleClass="form-horizontal" prependId="false">
<div class="form-group">
<div class="col-sm-12">
<h:inputText id="j_username" size="30" value="#{loginController.username}" required="true" requiredMessage="Bitte Nutzerkennung eingeben." pt:placeholder="Benutzername"/>
</div>
</div>
<div class="form-group">
<div class="col-sm-12">
<h:inputSecret id="j_password" size="30" value="#{loginController.password}" required="true" requiredMessage="Bitte Passwort eingeben." pt:placeholder="Kennwort"/>
</div>
</div>
<div class="form-group">
<div class="col-sm-12">
<p:messages showDetail="true" showSummary="false" autoUpdate="false"/>
</div>
</div>
<div class="form-group">
<div class="col-sm-12">
<h:commandButton id="btnlogin" value="Login" action="#{loginController.login}" disabled="#{loginController.mode eq 'error'}" type="submit" />
</div>
</div>
</h:form>
Ich hab schon in der growl.xhtml bei error globalOnly="true"
eingesetzt. Das hat zwar den gewünschten Erfolg gebracht, allerdings habe ich die Befürchtung das dadurch andere Messages verschwinden, die eigentlich angezeigt werden sollen.
Gibt es vielleicht einen anderen Weg den gewünschten Effekt zu erhalten?