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: