Ist es möglich, jstl in Javascript zu verwenden?
Ich bin dabei, <c:set var="abc" value="yes"/>
und dann später auf diesen Wert in HTML zugreifen und Code ausführen. Mein Problem ist das c: set wird immer ausgeführt, auch wenn die Javascript Bedingung falsch ist.
%Vor%Im obigen Code wird, auch wenn v1 falsch ist, 'no' auf abc gesetzt.
Es gibt keine Bedeutung für die Idee, "innerhalb von Javascript" zu sein, wenn Sie über serverseitige JSP-Interpretation sprechen. Soweit es diese Domain betrifft, gibt es einfach kein Javascript.
Also, ja, es ist möglich, wenn Sie meinen, dass Sie etwas wie
machen wollen %Vor% Beachten Sie, dass Sie mit Zitaten und Sonderzeichen vorsichtig sein müssen. Die Funktion JSTL fn:escapeXml()
ist nutzlos, wenn Sie eine JSP-Variable in einen Teil der Seite interpolieren, der vom Browser als Javascript-Quelle interpretiert wird. Sie können entweder eine JSON-Bibliothek verwenden, um Ihre Strings zu codieren, oder Sie können Ihre eigene EL-Funktion schreiben, um dies zu tun.
Das ist ein ziemlich alter Thread, aber es ist einer, den ich getroffen habe, als ich das gleiche Problem hatte. Da ich selbst über eine Lösung nachgedacht habe, werde ich sie hier posten, falls sie jemandem in der Zukunft hilft.
Die html (oder jsp) -Datei sucht nach dem Text in der externen Datei, die als JavaScript-Quelle deklariert ist.
Tomcat (oder ähnliche) interpretieren nur JSTL-Tags in Dateien mit der Erweiterung .jsp (oder vielleicht auch einige andere, aber für diese Antwort ist es irrelevant).
Benennen Sie also Ihre .js-Datei um, um ihr die Erweiterung .jsp zu geben (zB javascript.js zu javascript_js.jsp)
Fügen Sie diese Zeilen am Anfang von javascript_js.jsp hinzu:
%Vor%und lassen Sie den Code einfach unverändert.
Natürlich müssen Sie auch weitere Präfixe hinzufügen, wenn Sie einen anderen als c: in der Kopfzeile verwenden.
Wenn Sie Eclipse verwenden (nicht über andere IDEs wissen), wird angenommen, dass es keine Javascript-Datei ist und Sie das Farbschema für die verschiedenen Schlüsselwörter (var, function usw.), var name auto completion und automatische Einrückung.
Um die IDE zu täuschen, können Sie
hinzufügen %Vor%als js-Kommentar vor dem eigentlichen Code (nach den "& lt;% @" - Deklarationen) und
%Vor%am Ende der Datei, wieder als js Kommentar.
Es hat für mich funktioniert.
Tags und Links javascript html jsp jstl