JavaScript mit JSP-Code ?

Chimaira

Erfahrenes Mitglied
Hoi Leute,

ich stehe vor einem Problem.

Ich wil eine Auswahlliste in HTML mit JavaScript und JSP füllen. Aber er wirft mir dabei einen Fehler.

Fehlercode:
Code:
500 Internal Server Error
OracleJSP: oracle.jsp.provider.JspCompileException:
Errors compiling:/ora01/app/oracle/product/SOA/j2ee/home/application-deployments/test/upload/persistence/_pages//_index.java
Line #	Error

56
	[jsp src:line #:27]
')' expected out.print( appMan.getApplications( );

58
	[jsp src:line #:27]
illegal start of expression );

und hier der Code der ihn ausgelöst hat:

Code:
function loadApps(){
		var instanz = document.getElementById('insID').options[document.getElementById('insID').selectedIndex].value;
		_tmpArr = <%= appMan.getApplications( %> + instanz + <% ); %>;
		
		for(int i = 0; i < _tmpArr.lenght; i++){
			element = new Option(_tmpArr[i], _tmpArr[i] , false, true);
 			document.getElementById('appID').options[document.getElementById('appID').options.length] = element;
		}
}

Ich hoffe mir kann jemand helfen.


Greeze Chimaira
 
Soweit ich weiß, kannst du eine NICHT-JSP-Variable nicht im JSP-Code benutzen.
JSP ist ja dafür gedacht html-Code zu generieren und nicht umgekehrt.
Zudem bedeutet "<%=" das eine einzelne Java-Anweisung folgt. Dein Strichpunkt am Ende ist also unpassend. Ich würde allgemein für Methodenaufrufe kein "<%=" benutzen.

Wenn du die JAVAScript-Variable brauchst, müsstest du die in die Session schrieben und im JSP-Code dann rausfiltern. Aber wenn ich mich nicht irre geht das nicht so einfach bzw. garnicht.
 
hi,

danke erstmal für die Antwort. Naja ich glaube man kann JSP Code verwenden, jedoch ist die Anweisung komplett falsch.

ich brauche glaube nur:
Code:
<% appMan.getApplications( %> + instanz + <% ); %>

Jedoch akzeptiert er instanz nicht als Variable ... das stresst ein bisschen. Denn die Instanz muss ich übergeben um Anwendungen in eine Auswahlliste zu schreiben.

Danke dir trotzdem!

GReeze Chimaira
 
Das ist ja genau das was ich meinte. JAVA kann nicht auf die JavaScript-Variable zugreifen. JAVA kennt diese eben nicht. Du musst einen Weg finden, JAVA diese Variable bekannt zu machen, aber ich habe mich erst letztens danach totgesucht und nichts brauchbares gefunden.
 
Also wenn ich das richitg verstanden hab, hast du ne collection oder n array oder was ähnliches und willst diese alle hinzufügen richtig?

ganz oben auf deine jsp folgendes einfügen:
Code:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

dann kanns du das array oder die collection wiefolgt durchgehen:

Code:
<c:forEach var="collection" items="${collection}">
<c:out value="${collection.variable}">
</c:forEach>

ich hoffe ich hab dich richtig verstanden (bin mir da nicht so ganz sicher)
 
Hoi,

also in der JSP Datei habe ich oben den ApplicationManager initialisiert. Diese wollte ich dann in JavaScript benutzen.

Der ApplicationManager beinhaltet Java Methoden welche zum handling von XML-Dateien existieren.

Diese Methode gibt ein Array zurück welches in jedem Feld einen Anwendungsnamen beinhaltet.
Code:
appMan.getApplications(String instanz);

Und den Instanzstring bekommt man aus einer Auswahlliste in HTML. (Hier wird die Methode loadApps() aufgerufen (JavaScript). Und diese soll die Applikationen dann einer anderen Auswahlliste hinzufügen.

Beispiel für sowas:
Die NVIDIA Seite --> Grafiktreiber --> dort sind 3 Auswahllisten abgebildet. Wenn man in die Linke reinklickt und etwas auswählt, dann steht in der Mittleren die nächsten Optionen und so weiter und sofort.
Ich hoffe das war verständlich. ;)

Ist der Code den du gepostet hat für dieses Verfahren geeignet?

Mit freundlichen Grüßen

Chimaira
 
Nur mal so als Frage, hast du dich schonmal mit Ajax beschäftigt ?

Dein Beispiel von Nvidia wird bestimmt damit arbeiten. Über Javascript wird ein neuer Ajax.Updater() erzeugt. Dieser ersetzt den Inhalt in einem bestimmten DIV-Container durch den, der von einem angegebenen Servlet kommt.

vG Robert
 
Ich glaube Dir fehlt noch das grundsätzliche Verständnis zu JSP und Javascript.
Das JSP läuft doch auf dem Server ab, dort wird der Seiteninhalt mit Hilfe von JSP generiert. Dann sendet der Server die Seite an den Browser und erst jetzt frühestens werden irgendwelche Javascript Funktionen/Variablen/Anweisungen in irgendeiner Form angelegt/initialisiert/ausgeführt und zwar vom Browser im Browser. Da hat der Server auf dem das JSP läuft nix mehr zu sagen, es sei denn javacsript sendet requests an den Server (z.B ajax, Prototype.Update etc)...
 

Neue Beiträge

Zurück