Estoy recuperando un valor de nuestro DB usando JSTL. Lo estoy insertando directamente en algunos javascript para usarlo como una variable. Necesito el resultado del valor que el JSTL tiene para ser escapado porque si hay comillas simples o dobles, rompe mi script. El valor es especificado por el usuario.Salida JSTL escapado?
Ejemplo:
haciendo lo siguiente:
<c:set var="myVar" value="Dale's Truck"/>
<script type="text/javascript">
var mayVar = '${myVar}';
</script>
en realidad terminar pareciéndose a:
<script type="text/javascript">
var mayVar = 'Dale's Truck';//extra single quote breaks the JS
</script>
por eso es necesario para convertir el JSTL var que se escapó como "Dale% 27s Truck "before es get to the JS porque ya es demasiado tarde cuando llega a mi JS para poder hacerlo en JS.
Eso funciona, gracias! Usé el enfoque doble barra invertida en lugar de% 27. – UpHelix
¡Nunca escriba su propia función de escape! Porque va a estar mal. Por ejemplo, el ejemplo de doble barra invertida falla para la entrada "a b \\ 'c". Se convertirá en \\ 'para que la barra invertida se escape y la comilla simple terminará la cadena. Use funciones existentes que hayan sido probadas y depuradas, p. var x = ' $ {myVar} spring: escapeBody>'; –