JSF <f:event type="preRenderView" ... Problem!

jottes

Grünschnabel
Hallo zusammen.
In meiner Anwendung würde ich gerne in jeder View den Tag

Code:
<f:event type="preRenderView" listener="#{loginControl.checkAuthorization}" />

verwenden, um zu prüfen, ob der user angemeldet ist und ggf. auf die Login-Seite verzweigen.
Die Methode checkAuthorization() sieht wie folgt aus:

Code:
	public void checkAuthorization(ComponentSystemEvent evt)
	{
		FacesContext ctx = FacesContext.getCurrentInstance();
		ConfigurableNavigationHandler nav = (ConfigurableNavigationHandler)ctx.getApplication().getNavigationHandler();
		
		// navigate to login-screen
		if(this.user==null){			
			nav.performNavigation("login");
		} else {
			nav.performNavigation("welcome");
		}
	}

Der Mechanismus funktioniert soweit. Ich benutze auf meiner welcome-Seite primefaces components, die nicht mehr korrekt angezeigt werden, sobald ich diesen Mechanismus aktiviere. Im Anhang befinden sich die Screenshots, wie die Darstellungen mit und ohne den Mechnismus aussehen.

Wird der LifeCycle durch das nav.performNavigation("...") verändert? Es scheint javascript in der generierten View zu fehlen?! Hat jemand auch ähnlich Erfahrungen gesammelt?
 

Anhänge

  • Auswahl_005-thumb.jpeg
    Auswahl_005-thumb.jpeg
    4,7 KB · Aufrufe: 247
  • Auswahl_002-thumb.jpeg
    Auswahl_002-thumb.jpeg
    12,6 KB · Aufrufe: 18
Zurück