Ich lese einen Wert aus unserer Datenbank mit JSTL. Ich füge es direkt in ein Javascript ein, um es als Variable zu verwenden. Ich brauche die Ausgabe des Wertes, den die JSTL enthält, um es zu maskieren, denn wenn es einfache oder doppelte Anführungszeichen gibt, bricht es mein Skript. Der Wert ist benutzerdefiniert.
Beispiel:
Vorgehensweise:
%Vor%Würde tatsächlich am Ende aussehen wie:
%Vor%Also muss ich die JSTL var umwandeln wie "Dale% 27s Truck", bevor es zum JS kommt, weil es schon zu spät ist, wenn es zu meinem JS kommt, um es in JS machen zu können.
Versuchen Sie es mit fn:replace
:
oder Sie können das einfache Anführungszeichen mit einem Backslash umgehen:
%Vor%oder wenn Sie dies nicht einmal tun möchten und Sie sicher sind, dass die Zeichenfolge keine Anführungszeichen enthält, tun Sie Folgendes:
%Vor%Wenn die Zeichenfolge jedoch doppelte Anführungszeichen hat, müssen Sie sie dennoch umgehen:
%Vor% Die andere Antwort wurde bereits akzeptiert, aber David Balazic machte einen großen Punkt. Die Funktion <spring:escapeBody>
funktioniert am besten.
<spring:escapeBody htmlEscape="false" javaScriptEscape="true">${myVar}</spring:escapeBody>
Tags und Links javascript java escaping jstl