JSTL을 사용하여 DB에서 값을 가져옵니다. 변수로 사용하려면 자바 스크립트에 바로 삽입하려고합니다. JSTL이 이스케이프 처리하기 위해 보유하고있는 값의 출력이 필요합니다. 작은 따옴표 나 큰 따옴표가 있으면 스크립트가 손상되기 때문입니다. 값은 사용자 지정입니다.출력 JSTL이 이스케이프됩니까?
예 :
<c:set var="myVar" value="Dale's Truck"/>
<script type="text/javascript">
var mayVar = '${myVar}';
</script>
실제로처럼 보이는 끝날까요 :
<script type="text/javascript">
var mayVar = 'Dale's Truck';//extra single quote breaks the JS
</script>
그래서 나는 JSTL의 var에 탈출 할 수처럼 변환해야 "데일 %
다음을 수행 27s Truck "이 JS에 도착하기 전에 JS에 도달 할 수 있기 때문에 너무 늦었 기 때문에 JS에 도착할 수 있습니다.
감사합니다. % 27 대신 이중 백 슬래시 방식을 사용했습니다. – UpHelix
자신 만의 탈출 함수를 작성하지 마십시오! 왜냐하면 그것은 틀릴 것이기 때문입니다. 예를 들어 이중 백 슬래시 예제는 "a b \\ 'c"입력에 대해 실패합니다. \\ '로 변환되어 백 슬래시가 이스케이프 처리되고 작은 따옴표로 문자열이 끝납니다. 이미 입증되고 디버깅 된 기존 기능을 사용하십시오. var x = ' $ {myVar} spring : escapeBody>'; –