Hallo Zusammen,
die Frage, die ich habe bezieht sich ein wenig auf die Frage im Thema unter meinem, doch irgendwie auch nicht 100%ig.
Ich habe ein Form in dem der Benutzer seinen Nutzernamen und das Passwort angeben soll. Wenn auf den Button geklickt wird, soll überprüft werden ob der User existiert usw. Wenn der Login daneben läuft, soll eine Fehlermeldung angezeigt werden. Per Ajax!
Ich habe das folgendermaßen versucht:
Methode chechUser:
Das Problem ist, dass die Nachrichten in der View nicht angezeigt werden. Auch die Verwendung von h:message hat nicht zum Erfolg geführt. Auf der Seite befindet sich ein p:growl (falls es euch bekannt ist). Am liebsten sollte dieses die Fehlermeldung anzeigen.
Außerdem: Wie kann ich die Werte an den ActionListener übergeben. Bisher passiert das ja statisch via
Sorry, für diese Anfängerfrage, doch ich habe im Netz immer nur so umständliche Lösungen für so etwas gefunden.
Edit: Ich sollte vielleicht als Ergänzung anfügen, dass ich nicht direkt mit den Beans kommuniziere, sondern die Kommunikation immer über einen Controller läuft.
die Frage, die ich habe bezieht sich ein wenig auf die Frage im Thema unter meinem, doch irgendwie auch nicht 100%ig.
Ich habe ein Form in dem der Benutzer seinen Nutzernamen und das Passwort angeben soll. Wenn auf den Button geklickt wird, soll überprüft werden ob der User existiert usw. Wenn der Login daneben läuft, soll eine Fehlermeldung angezeigt werden. Per Ajax!
Ich habe das folgendermaßen versucht:
Java:
<h:panelGroup layout="block" styleClass="iets">
<h:panelGrid columns="2" >
<h:form prependId="false" >
<h2>Benutzerbereich</h2>
<h:outputLabel value="Benutzername* " for="Benutzername" />
<p:keyboard required="true" id="Benutzername" showMode="button">
<p:ajax event="blur" update="growl" />
</p:keyboard>
<h:outputLabel value="Passwort* " for="Passwort" />
<p:keyboard password="true" id="Passwort" required="true" showMode="button">
<p:ajax event="blur" update="growl" />
</p:keyboard>
<p:commandButton ajax="true" value="Login" update="growl" actionListener="#{userController.checkUser}" >
<f:attribute name="username" value="Phenix" />
<f:attribute name="password" value="12345" />
</p:commandButton>
</h:form>
</h:panelGrid>
</h:panelGroup>
Methode chechUser:
Java:
public void checkUser(ActionEvent event)
{
try
{
String username = (String) event.getComponent().getAttributes().get("username");
String password = (String) event.getComponent().getAttributes().get("password");
if (reader.checkUser(username, "USERNAME", password, "PASSWORD", "USERS"))
{
FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_INFO, "Erfolg", "Alles richtig eingegeben");
throw new ValidatorException(msg);
} else
{
FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_ERROR, "Logindaten falsch", "Der eingegebene Benutzername oder das eingegebene Passwort war falsch.");
throw new ValidatorException(msg);
}
} catch (CommunicatorException ex)
{
System.out.println(ex.getMessage());
}
}
Das Problem ist, dass die Nachrichten in der View nicht angezeigt werden. Auch die Verwendung von h:message hat nicht zum Erfolg geführt. Auf der Seite befindet sich ein p:growl (falls es euch bekannt ist). Am liebsten sollte dieses die Fehlermeldung anzeigen.
Außerdem: Wie kann ich die Werte an den ActionListener übergeben. Bisher passiert das ja statisch via
Code:
<f:attribute name="username" value="Phenix" />
Sorry, für diese Anfängerfrage, doch ich habe im Netz immer nur so umständliche Lösungen für so etwas gefunden.
Edit: Ich sollte vielleicht als Ergänzung anfügen, dass ich nicht direkt mit den Beans kommuniziere, sondern die Kommunikation immer über einen Controller läuft.
Zuletzt bearbeitet: