Javascript-Methode mit jsp-variable aufrufen
lina-
- sonstiges
moin liebes Forum :)
Es handelt sich im Folgenden ziemlich sicher um einen banalen Fehler meinerseits... aber ich starre jetzt schon ewig auf diese Zeilen und finde ihn nicht :(
Ich habe den Eventhandler in einem Struts-Tag html:select
<html:select onchange="updateTextfield(folderFilter, <%=key%>)" name="param" property="value">
<html:options name="param" property="selection"/>
</html:select>
Wie unschwer zu erkennen ist möchte ich der Methode "updateTextfield(filter,key)" eine JSP-Variable übergeben (<%=key%>)
Erwähnenswert ist vielleicht, dass die Methode mit einem einfachen String als zweiten Parameter wunderbar funktioniert und die JSP-Variable den richtigen Wert und Typ hat.
Mit dieser Notation updateTextfield(folderFilter, <%=key%>) bekomme ich allerdings den Fehler "Syntax Error".
Also habe ich updateTextfield(folderFilter, '<%=key%>') versucht. In diesem Fall hat aber die Variable key in der Methode den Wert "<%=key%>" - was nicht ganz meine Absicht war *G* natürlich möchte ich den _Wert_ der JSP-Variable und nicht ihren Namen haben.
Weiterhin habe ich "updateTextfield(folderFilter, "+<%=key%>+")" probiert. Aber so beschwert sich der Compiler über einen unbalanced select-Tag. (irgendwie auch logisch).
Sicherlich mache ich nur etwas mit den "Gänsefüßchen" oder so falsch.. Wer findet den Fehler?
PS: hab jetzt schon öfter gesehen, dass Code-Beispiele mit Syntax-Highlighting versehen sind ... wie macht man das???
liebe Grüße aus Berlin
lina-
Hallo lina!
Ich habe schon lange nicht mehr mit Struts/Tomcat zu tun gehabt. Aber soweit ich weiß ist die Abarbeitung natürlich an STRUTS gebunden und nicht an JSP. Das bedeutet dann auch, dass dort die JSP Variablen nicht vorhanden sind. Du müsstest Dir also mit einem Workaround helfen indem Du eine JavaScript-Variable im onchange definierst und diese ausserhalb der STRUTS Tags füllst. Dort funktioniert ja auch JSP.
Prinzipiell finde ich aber das Mischen von JSP und STRUTS nicht besonders schön. Du kannst doch auch in STRUTS Variablen definieren mit denen Du arbeiten kannst.
Schönen Gruß
Afra
moin afra :)
Prinzipiell finde ich aber das Mischen von JSP und STRUTS nicht besonders schön. Du kannst doch auch in STRUTS Variablen definieren mit denen Du arbeiten kannst.
hmm? du meinst sowas in der Art: onchange="updateTextfield(folderfilter,<bean:write name='key')"?
Daran hab ich ehrlich gesagt gar nicht gedacht *g* werde ich gleich mal ausprobieren ;)
Danke erstmal!
liebe Grüße aus Berlin
lina-
moin afra :)
Prinzipiell finde ich aber das Mischen von JSP und STRUTS nicht besonders schön. Du kannst doch auch in STRUTS Variablen definieren mit denen Du arbeiten kannst.
Grundsätzlich eine tolle Idee - leider bleibt das Grundproblem mit den Gänsefüßchen erhalten :(
onchange="updateTextfield(folderFilter,<bean:write name='key'/>)"
das haette ich am logischsten gefunden - ergibt aber Syntax Error
onchange="updateTextfield(folderFilter,'<bean:write name='key'/>')"
funtioniert ebenfalls nicht
onchange="updateTextfield(folderFilter,'<bean:write name="key"/>')"
sowieso nicht ;)
liebe Grüße aus Berlin
lina-
Hallo lina-!
Deinen Versuch hatte ich Dir auch nicht empfohlen. Lies meine Antwort nochmals genau durch und mach es so. Dann funktioniert es auch. Definiere eine im Dokument gültige JavaScript Variable ausserhalb der Struts Tags und benutzte diese Variable innerhalb der Struts Tags.
Schönen Gruß
Afra
moin afra :)
Deinen Versuch hatte ich Dir auch nicht empfohlen. Lies meine Antwort nochmals genau durch und mach es so. Dann funktioniert es auch. Definiere eine im Dokument gültige JavaScript Variable ausserhalb der Struts Tags und benutzte diese Variable innerhalb der Struts Tags.
hmm.. Naja - diese Art von Sprachmischung ist ja auch nicht besser als JSP und Struts mischen ;) So halte ich ja alle Variablen 2x vor...
liebe Grüße aus Berlin
lina-
moin afra :)
Ich sagte nicht, dass es besser wäre. :)
stimmt ;) aber so funktioniert es wenigstens *g*
danke!
liebe Grüße aus Berlin
lina-