JSF Methodenaufruf in JSF

OnDemand

Top Contributor
Hi zusammen,

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??:eek: 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

  • Unbenannt.JPG
    Unbenannt.JPG
    20,1 KB · Aufrufe: 20
Zuletzt bearbeitet:

Ähnliche Java Themen

Neue Themen


Oben