# Velocity: Zugriff auf Sessionvariable?



## hardie82 (20. Mai 2007)

Hallo Leute. Ich beschäftige mich seit einiegr Zeit mit Velocity und Webanwendungen. Soweit habe ich bis jetzt auch alles verstanden, bis auf die Sache, wie ich auf die Sessionvariable zugreifen kann. Zum Beispiel um die Gruppenzugehörigkeit eines angemeldeten Benutzers abzufragen oder spezielle Seitenaufrufe aufgrund von Rechten zuzulassen. In einigen Threads habe ich gelesen, dass es mit der Variablen "$session" oder "$request.sessin" funktionieren soll, bei mir jedoch kein Erfolg ergab. Muss ich die Sessionvariable händisch im Context ablegen (bspw. innerhalb eines Servlets) oder wird die automatisch an den Context übergeben? Und wie lautet dann der korrekte Aufruf in den *.vm Dateien? Hoffe, einer kann mir bei meinem Problem weiterhelfen. Danke schonmal im vorraus.

Gruß Hardie


----------



## LordSam (28. Mai 2007)

Velocity kennt erstmal nur die Variablen, die vor dem parsen in den VelocityContext gepackt wurden. In welchem zusammenhang verwendest Du den Velocity?


----------



## SnooP (28. Mai 2007)

Jo thats right... - hole dir also in dem Servlet das request-Objekt und packe es in den Context: getVelocityContext().put("request", request)... dann kannst du innerhalb des Velocity-Templates per $request.session auf die session etc. zugreifen... wenn du nur konkrete Variablen aus der Session brauchst, ist es evtl. sogar praktikabler diese einfach direkt in den Context zu tüten... dann kann man das Template leichter pflegen und evtl. auch besser testen (man braucht keinen servlet-context mehr)...


----------



## hardie82 (28. Mai 2007)

Hm, danke. Genau das hatte ich befürchtet. Ich verwende Velocity in einem Webprojekt und brauche die Sessionvariable bzw. den angemeldeten Benutzer aus der Session zum Anzeigen z.B. von Benutzerdaten oder "angemeldet als" . Da ich aber doch eine höhere Anzahl an Controllerklassen habe, wollte ich nicht in jedem immer den User zum Context hinzufügen und hatte gehofft, diesen Schritt irgendwie umgehen zu können. Da wird mir wohl nix anderes übrig bleiben, als entweder direkt über die JSP-Tags auf die Session zuzugreifen oder halt doch immer den User dem Context hinzuzufügen.

Gruß Hardie


----------

