Struts+AJAX Session-Handling

7bkahnt

Mitglied
Hallo Leute,
ich stehe vor einem Problem.
Ich habe eine Struts 2-Anwendung geschrieben. Da ich das ständige Aktualisieren aber nervig finde, möchte ich nun AJAX einsetzen.
Ich verwende bei Struts allerding die session als Map.
Also so:
Java:
private Map <String, Object> session;
und ganz unten entsprechend
Java:
@Override
  public void setSession(Map<String, Object> session) 
  {
      this.session = session;
  }

Nun ist mein Problem, das ich mittels AJAX eine Methode aufrufen möchte, in der ich die session verwende. Da bekomme ich aktuell eine Nullpointerexception, da die setSession()-Methode ja nicht von Struts aufgerufen wird und ich somit nicht mit session.get(..) an die jeweiligen Werte kommen.
Habt ihr evtl. dafür eine Lösung, wie ich mittels AJAX die session übergebe an die jeweilige Action-Klasse
Ich dachte da an sowas wie
Java:
HauptAction action = new HauptAction();
action.setSession(request.getSession());

Dies funktioniert so aber nicht, da die setSession-Methode ja eine Map benötigt und keine HttpSession.
Für Tipps wäre ich echt sehr dankbar ;-)

grüsse
 
OK, jetzt noch mal nicht von unterwegs und in Ruhe gelesen:

new IrgendwasAction() ist evil und höchstens im Testfall interessant, wird aber auch nicht benötigt. Stattdessen sollte dein AJAX Request eine URL aufrufen, hinter der ein Action Mapping unter Verwendung des JSON- oder HTTPHeaderResults (statt normalem Dispatcher Result o.ä.) liegt. Die Action wird dann sauber von S2 mit vollem InvocationContext versehen, der durch alle Interceptoren etc. gelaufen ist und in dem deine Session brav injeziert ist.

Gruß,
René

http://twitter.com/rgielen
 
Okay danke! Ich hatte gelesen, dass es mit dem Jquery-Plugin möglich sei.
Nun habe ich das Plugin struts2-jquery2.4.1.jar runtergeladen ins Verzeichnis WEB-INF/lib eingebunden.
Aber ich kann es nicht verwenden.
HTML:
<%@ taglib prefix="sj" uri="/struts-jquery-tags"%>
Da meckert er rum "Cannot find the tag Libary for /struts-jquery-tags"

Wäre echt froh über nen Tipp. Komme gerade absolut nicht weiter....
 
Wende Dich am besten an die struts2-jquery Support Gruppe (Google Group http://groups.google.com/group/struts2-jquery), um Dein Problem zu beschreiben.

Es hilft, wenn Du Deine verwendete Umgebung beschreibst - Welcher Container in welcher Version (z.B. Tomcat 6.0.29) und welche Servlet Spec Du verwendest (2.3, 2.4, 2.5, 3.0? - sieht mal z.B am Header in der web.xml)
 

Neue Beiträge

Zurück