2013-02-08 9 views
5

entkommen Wenn wir versuchen, ein Etikett zum Anzeigen von einer Properties-Datei, Feder-Tags verwenden, können wir schreiben:Spring-Nachricht Tag Javascript

<spring:message javaScriptEscape="true" code="label" /> 

ich bin, um herauszufinden, nicht in der Lage, was die Verwendung von javaScriptEscape="true" ist. Warum brauchen wir das?

Antwort

10

Wenn die Nachricht eine JavaScript Stringliteral, wie in

<script> 
    function sayI18nedHello() { 
     alert('<spring:message javaScriptEscape="true" code="hello" />'); 
    } 
</script> 

Dann müssen Sie dieses Attribut, das die einfache und doppelte Anführungszeichen wird entkommen, die Newline-Zeichen, die Registerkarten usw., um Stellen Sie sicher, dass das generierte JavaScript gültig ist.

+0

Vielen Dank. Können Sie mir bitte sagen, ob ich htmlEscape verwenden soll und wann ich javascriptEscape verwende? – Victor

+3

Nun, htmlEscape, wenn die Nachricht in einem HTML-Dokument enthalten ist, und javascriptEscape, wenn es in einem JavaScript-String-Literal enthalten ist. –

+0

Wo ist die eigentliche Dokumentation? Die Spring Website/Dokumente selbst beachten nur, dass es "JavaScript-Escaping für dieses Tag festlegen", aber nicht, ob es umgebenden Anführungszeichen benötigt, und welche, falls vorhanden. Ich hätte erwartet, dass es die Anführungszeichen _provide_ liefert, so dass Sie einfach alert sagen können (); und es würde den Rest erledigen. – mirabilos