Ausgabe JSTL maskiert? [Duplikat]

9

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.

    
UpHelix 15.07.2010, 21:33
quelle

2 Antworten

12

Versuchen Sie es mit fn:replace :

%Vor%

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%     
Vivin Paliath 15.07.2010, 21:37
quelle
1

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>

    
Anthony Chuinard 04.06.2016 03:54
quelle

Tags und Links