f:event preRenderView Trigger wird nicht ausgeführt

TimSkyp

Mitglied
Hallo

Ich bin gerade dabei einen Basic login in meiner Webanwendung zu erstellen

Ich benutze dafür ein Realm vom glassfish-Server

Mein Konzept ist:
Wenn der Benutzer sein Profil (myProfile.xhtml) sehen will dann muss er/sie sich vorher einlogen.
Der Realm und die das Constaint für die Seite myProfile.xhtml funktioniert und passt auch so.

Damit jedoch der richtige Benutzer (richtige Email Adresse) gefunden wird hab ich in meiner Seite myProfile.xhtml einen preRenderView Trigger eingebunden der feuert eine Methode die mir eine passende email Adresse sucht oder wenn keine gefunden wird eben nicht.

Der Trigger funktioniert jedoch nicht
er geht nie in die Methode die ich im listender angegeben hab??
Ich weiß echt nicht wieso ?? ???:L

Vielleicht weiß jemand was ich vergessen hab, damit es nicht funktioniert

Hier ist mal mein Trigger und meine Methode die aufgerufen werden sollte (die aber nicht aufgerufen wird)

[XML]
<f:metadata>
<f:event type="preRenderView"
listener="#{journeyController.initCurrentUser()}" />
</f:metadata>
[/XML]

Java:
public void initCurrentUser() {
        if (!FacesContext.getCurrentInstance().isPostback()) {
            Person person = personService.findByEmail(
                    FacesContext.getCurrentInstance().getExternalContext().getRemoteUser());
            getSelected().setDriver(person);
        }
    }


Ich hab meinen Trigger einfach ganz oben in meinem xhtml file eingefügt.
Laut einer Erklärung sollte es so funktionieren.

Ich freue mich über jeden Kommentar.:)

lg.
 

TimSkyp

Mitglied
Ich hab mal probiert meinen Trigger wo anders zu platzieren.

Wenn ich ihn in mein Master template file schmeiße funktioniert er.
Was könnte falsch sein damit er in dem bestimmten file nicht erreicht wird???
 

TimSkyp

Mitglied
Hallo,

ich bin grade wieder auf etwas drauf gekommen was schuld sein kann
Wenn ich in meinem web.xml file den security-constraint weggeb der genau für die
Seite steht in der der Trigger ausgeführt werden soll dann führt er den listender aus.

Nur Wenn ich sie drin hab dann geht's nicht. Ich brauch den constaint aber unbedingt, weil der User ja nicht unangemeldet sein Profil sehen soll, sonst würd er ja nichts sehen.

Hier ist mal die security-constraint von meinem web.xml file

[XML]
<security-constraint>
<display-name>PersonConstraint</display-name>
<web-resource-collection>
<web-resource-name>PersonPages</web-resource-name>
<description/>
<url-pattern>/faces/pages/carmania/myProfile.xhtml</url-pattern>
</web-resource-collection>
<auth-constraint>
<description/>
<role-name>Person</role-name>
</auth-constraint>
</security-constraint>
[/XML]


Hat wer eine Ahnung warum sich die irgendwie im weg sind.
Ich weiß nämlich echt nicht mehr weiter

HILFE!!!!!:(:(:(

lg.
 
Zuletzt bearbeitet:

JimPanse

Bekanntes Mitglied
Der Security-Filter greift bevor deine View gerendet wird d.h. wenn der Benutzer nicht angemeldet ist wird dein Event nicht ausgeführt.


Warum nimmst du nicht stattdesen @PostConstruct?
 

Ähnliche Java Themen

Neue Themen


Oben