# JSP und JavaScript Kommunikation in MVC Pattern



## Mercious1 (24. Feb 2015)

Servus Leute,

ich sitze hier gerade an einem Problem und stelle mir die Frage, ob unter folgenden Umständen das möglich ist, was ich gern hätte:

Ich habe eine Java Webanwendung, die per MVC pattern arbeitet.
D.h ich hab zB für die /fooURL einen Controller (Spring-Framework) definiert, der dann entsprechende Daten besorgt etc und dann am Ende an die fooURL.jsp view-Datei weitergibt, damit diese sichs ums Anzeigen kümmert.

So, in dieser fooURL.jsp Datei kriege ich eine Liste aus Daten, sagen wir mal zB eine Liste aus Autos.
Ich zeichne hier per forEach Schleife eine Liste aus Buttons, jeder Button ist beschriftet mit groben Informationen über das auto.
[ Mercedes, 1990 ]
[    BMW, 2002     ]

etc.

Was jetzt passiert, wenn ich einen dieser Buttons anklicke, ist zunächst mit einer JavaScript-Datei gelöst. Die wird am anfang meiner fooURL.jsp <%@ included%>. Genau genommen wird eigentlich eine header.JSP included und der selber wiederrum included dann die richtige .JS Datei.

Nun, in der JavaScript Datei wird eine Information aus dem gedrückten Button ausgelesen, zB das Baujahr hier in dem Beispiel. Das liest das Script soweit ich sehe aus dem eindeutigen Titel des Buttons heraus.
Mit den Informationen wird dann ajax ausgeführt und die URL entspricht der, die mein 2.er Controller überwacht. Das ausgelesene Baujahr wird dabei per RequestParam übergeben.

Nun bin ich also wieder auf Controllerebene, bekomme das Baujahr, fülle wieder Informationen und gebe das an meine 2. View weiter.
Diese zeigt die Details zu dem Auto an. zB Kilometerstand, etc. Der Sinn dieser Umständlichkeit ist es, dass dies per "Aufklappen" unter des entsprechenden Buttons und nicht auf einer neuen Seite dargestellt wird.


Das Problem: Ich würde gerne irgendwie dafür sorgen, dass ich aus meiner fooURL.JSP mir vorhandene Daten an den JavaScript weiterreiche, damit er in seinem ajax Aufruf diese zusätzlich als RequestParam an den 2. Controller übergeben kann.
Weitere Parameter im 2. Controller zu akzeptieren ist kein Problem, das funktioniert.

Allerdings scheint es soweit ich sehe, nicht möglich zu sein, in meiner JavaScript-Datei, die ja auch über Umwege included ist, Dinge aus meiner fooURL.JSP zu ziehen. 
Ich hab schon über <%> Tags Variablen mit Java-Code definiert und dann versucht, diese über <%=varName%> im JavaScript anzusprechen, aber er kann damit nichts anfangen, es nicht auflösen.

Ich hoffe, dass das Ganze irgendwie verständlich ist, ansonsten gerne noch mal nachharken!

Mfg
Mercious


----------



## Mercious1 (26. Feb 2015)

Naja gut, im Endeffekt lässt es sich lösen, wenn man die ganzen Daten, die man so braucht per <div> in die Seite klatscht und dann im JavaScript per getElementByID und getAttribute('Title') etc. wieder ausliest.

Dan müsste man die entsprechenden divs wieder per asynchronem Schreiben verändern und man hätte das ganze gelöst.

Das war mir persönlich aber einfach viel zu unschön und ich hab dann doch lieber einfach eine 2. SQL Anfrage gemacht und mir die Daten ein zweites mal dort geholt, wo ich sie brauche.
Der Aufruf ist mit hoher wahrscheinlichkeit eh noch im Cache und ich spar mit damit das Ganze Hin und Her mit JS und JSP.

Aber wenn jemand die Lösung interessiert hat, hier nochmal: Per <div> und type="display: none" damit die Datem dem JavaScript clientseitig zur Verfügung stehen und dann mit den oben genannten Funktionen diese auslesen.

Mfg
Mercious


----------

