Die übergabe eines servlet-Variablen in javascript
Ich bin auf der Suche passieren ein servlet variable myVar übergeben wird, in eine JSP-Seite, und übergeben es an JavaScript. JavaScript ist eine externe javascript enthalten ist, in die JSP-Seite.
Habe ich einen button, der ruft die JavaScript-Funktion, aber ich bin nicht in der Lage zu passieren, alle die Variablen, die übergeben werden in der JSP-Seite durch das servlet. Der button ist kein Teil der form.
Habe ich versucht in eine Funktion in JavaScript zu nennen:
var x = '<%=myVar%>';
UND
var x = '${myVar}';
UND
var x = '<%= (String)request.getParameter("myVar") %>';
Jedoch x
ist immer ein string, was ich eingegeben.
Ich bin nicht mit AJAX oder JQuery. Irgendwelche Ideen?
Beispiel-Code ist eine vereinfachte version: (also die Taste ist eigentlich ein drop-down, ruft die js wenn ich den Wert ändern, allerdings möchte ich, dass andere Variablen, die nicht Teil der Dropdown aufgerufen werden, in changeCLass)
Servlet-Seite:
request.setAttribute("otherVars","tests");
JSP:
<script type="text/javascript" src="external.js"></script>
<select name="vars" id="myVars" onchange="changeClass(this)">
<option value='1' selected="selected">1</option>
</select>
external.js enthalten in JSP:
function changeClass(newVarX) {
var newVarId =newVarX.value;
var tID = '${otherVars}';
alert(newVarId + " " + tID);
}
Ausgabe:
1 $(otherVars}
aber die Ausgabe sollte sein:
1-tests
einfache Weg, es zu tun, ist das erstellen eines hidden-Feld, das den Wert speichert und es von dort aus. Ein anderer Weg ist die übergabe der Variablen in der js-Funktion als parameter
<button onclick='someFunction(<%= (String)request.getParameter("myVar") %>)'> Call function</button>
Besser wäre es, zu erklären, wie die Anwendung verhält sich atm (mit code-Beispiel) um ein besseres Verständnis und eine bessere Lösung
"JavaScript ist eine externe javascript enthalten ist, in die JSP-Seite" - könnte Sie post von der JSP-zeigt, wie Sie diese Datei einschließen?
BTW ${otherVars} funktionieren nicht auf Ihre eigenen - Sie müssen mithilfe von c:oder einen ähnlichen tag-z.B. <c:out value="${otherVars}"/>
InformationsquelleAutor user1798546 | 2012-11-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Funktioniert das nicht, weil Sie Ihre JavaScript-Datei wird nicht vom server verarbeitet werden. Mögliche Lösungen sind:
Deklarieren Sie die variable
tID
weltweit in der JSP-Datei.JSP:
JavaScript (external.js):
Haben die JavaScript-Datei auch verarbeitet werden. Sie können eine JSP-Datei für das JavaScript und die richtigen content-type:
JSP:
JavaScript (extern.jsp --> bitte beachten Sie, dass es eine JSP-Datei, auch, aber der content-Typ text/javascript):
InformationsquelleAutor Jan