Hi zusammen,
ich habe in meinem Projekt eine header.xhtml mit einem Logout-Button
Diese header-Datei wird überall da eingebunden wo das Menü sichtbar sein soll.
Nun habe ich eine Navigation-Rule siehe Anhang. Wenn ich den Logout Button betätige kommt die korrekte Konsolenmeldung, also wird die Methode aufgerufen. Nur die Weiterleitung klappt nicht.
faces-config.xml
Methode:
Hat jemand ne Idee warum die Weiterleitung nicht klappt?
Edit:
Sobald ich die Navigation-Rule auf eine andere Seite zeigen lasse, welche den header implementiert, klappt es. Muss man etwa für jede Seite solch eine Rule erstellen?? Kann man das nicht global deklarieren, dass diese Rule für alle Seiten gilt?
Also das hier klappt:
ich habe in meinem Projekt eine header.xhtml mit einem Logout-Button
Java:
<p:menuitem value="Logout" action="#{logoutController.logout}" icon="ui-icon-close" />
Diese header-Datei wird überall da eingebunden wo das Menü sichtbar sein soll.
Nun habe ich eine Navigation-Rule siehe Anhang. Wenn ich den Logout Button betätige kommt die korrekte Konsolenmeldung, also wird die Methode aufgerufen. Nur die Weiterleitung klappt nicht.
faces-config.xml
Code:
<navigation-rule>
<display-name>resources/template/header.xhtml</display-name>
<from-view-id>/resources/template/header.xhtml</from-view-id>
<navigation-case>
<from-action>#{logoutController.logout}</from-action>
<from-outcome>userIsLoggedOut</from-outcome>
<to-view-id>/loggedOut.xhtml</to-view-id>
</navigation-case>
</navigation-rule>
Methode:
Java:
public String logout() {
logger.info(session.getAttribute("username") + " - hat sich ausgelogged");
session.invalidate();
return "userIsLoggedOut";
}
Hat jemand ne Idee warum die Weiterleitung nicht klappt?
Edit:
Sobald ich die Navigation-Rule auf eine andere Seite zeigen lasse, welche den header implementiert, klappt es. Muss man etwa für jede Seite solch eine Rule erstellen?? Kann man das nicht global deklarieren, dass diese Rule für alle Seiten gilt?
Also das hier klappt:
Code:
<navigation-rule>
<display-name>private/index.xhtml</display-name>
<from-view-id>/private/index.xhtml</from-view-id>
<navigation-case>
<from-action>#{logoutController.logout}</from-action>
<from-outcome>userIsLoggedOut</from-outcome>
<to-view-id>/loggedOut.xhtml</to-view-id>
</navigation-case>
</navigation-rule>
Anhänge
Zuletzt bearbeitet: