JavaScript: Zugriff auf von JSP gesetzte Session-Objekte?

n-soft

Grünschnabel
Hallo, wer kennt sich damit aus?

Eine Web-Applikation läuft unter Tomcat. Die Client-Seite ist aus HTML-Seiten aufgebaut, in welche mittels JavaScript diverse Prüfungen und Formatierungen eingebaut worden sind. Damit ich zusätzlich JSP verwenden kann, habe ich die *.html-Seiten mit dem Postfix jsp (*.jsp) versehen. Mittels JSP bin ich nun in der Lage sogenannte Session-Objekte (Hashtable) zu setzen, auf dessen Inhalt ich während einer gültigen Session zugreifen kann und möchte.

Nun zum Problem:
Der Inhalt einer tabellarischen JSP-Seite kann duch einen Klick auf eine HREF spaltenweise sortiert werden. Dazu wird ein JavaScript angestoßen, welches dem Script die zu sortierende Spalte als Argument überreicht. Im Script wird die Spalte um eine Sortierrichtung ergänzt (0/1 für asc/desc) und mit der Methode submit() ausgeführt - auf dem Server wird ein Java-Programm zur Sortierung angestoßen -. Das Ergebnis der Sortierung wird danach in der JSP-Seite dargestellt. So weit so gut. Klick der Client ein zweites mal auf den HREF, wird in dieselbe Richtung sortiert.

Was habe ich bisher getan:
Ich habe die Form am Anfang um den folgenden JSP-Code erweitert, wobei im String jede Null eine Spalte darstellt:

<%@ page session="true" %>
<%
if (session.getAttribute("sortedColumns") == null || session.getAttribute("sortedColumns").equals("")) {
session.setAttribute("sortedColumns", "00000000000000000000");
String sessionValue = (String)session.getAttribute("sortedColumns");
out.println("<input type='hidden' name=sortedColumns value=" + sessionValue + ">");
} else {
String sessionValue = (String)session.getAttribute("sortedColumns");
out.println("<input type='hidden' name=sortedColumns value=" + sessionValue + ">");
}
%>


Damit belege ich erstmalig ein Session-Objekt mit einem Wert, ansonsten wird das Session-Objekt nur gelesen und der Input-Type aktualisiert. Die Methode, welche zur Sortierung von HREF aufgerufen wird, aktualisiert bereits den o. g. Input-Type - nicht jedoch das Session-Objekt -:

self.stdForm.sortedColumns.value = sortedCols;

Was möchte ich erreichen:
JavaScript soll in der Methode, wo die Sortierung angestoßen wird nun auch das Session-Objekt aktualisieren, damit ich immer den zuletzt gültigen Wert durch den o. g. JSP-Code lesen kann.

Ich hoffe, ich konnte mich verständlich ausdrücken!

Gruß n-soft
 
Javascript, sofern es sich um clientseitiges handelt, kann keine Servervariabeln lesen/schreiben.

Dein JS müsste wiederum ein serverseitiges Skript aufrufen, welches die Session aktualisiert.
 
Danke, ich habe mir etwas anders geholfen. JavaScript submitted die Form zu einer JSP. Diese aktualisiert die Session-Objekte und danach wird die ursprüngliche Seite akutalisiert.
 

Neue Beiträge

Zurück