JSP

JSP에서 EL과 Template Literal 충돌 해결하기

초코너무조코 2025. 2. 27. 12:17
728x90

JSP 페이지에서 JavaScript의 템플릿 리터럴을 사용할 때 발생하는 EL(Expression Language)과의 충돌 문제를 해결하는 방법을 알아보겠습니다.

문제의 원인

JSP의 EL과 JavaScript의 템플릿 리터럴은 모두 ${} 구문을 사용합니다.

이로 인해 서버에서 JSP를 처리할 때 JavaScript의 템플릿 리터럴을 EL로 잘못 해석하여 원하는 결과를 얻지 못하는 문제가 발생합니다.

해결 방법

  1. 이스케이프 처리
    템플릿 리터럴의 ${} 앞에 백슬래시(\)를 추가하여 이스케이프 처리합니다.
console.log(`\${year}-\${month}-\${date}`);
  1. 중첩 표현식 사용
    EL 표현식 내부에 JavaScript 템플릿 리터럴을 넣어 중첩 표현식을 만듭니다.
var slackMsg1 = `📣${'${ntcMenu}'} 게재알림`;
  1. JSTL의 out 태그 활용
    JSTL의 <c:out> 태그를 사용하여 EL 표현식을 출력합니다.
<c:out value="${'${variableName}'}" escapeXml="false" />

주의사항

  • JSP의 EL은 서버에서 먼저 처리되고, JavaScript의 템플릿 리터럴은 브라우저에서 나중에 처리됩니다.
  • 항상 보안에 유의하여 사용자 입력값을 처리해야 합니다.
728x90

'JSP' 카테고리의 다른 글

JSTL의 <c:url> 태그  (0) 2025.02.27
Servlet Filter의 모든 것  (0) 2025.02.26
EL과 JSTL 완벽 가이드  (0) 2025.02.26
스크립틀릿(Scriptlet)  (0) 2025.02.20
Spring MVC에서 @RequestParam과 @ModelAttribute의 차이점  (0) 2025.02.19