아래의 예시와 같이 ``(템플릿 리터럴)이 정상 작동되지 않아 지저 분하고 긴 코드가 될 뻔했지만.
구글 검색을 통해서 jsp에서 ``(템플릿 리터럴)이 사용되지 않는 이유와 해결법을 찾았습니다.
jsp를 사용할 경우, jsp의 EL 표현식과 JavaScript의 템플릿 문자열이 겹치게 되기 때문에 정상 작동이 되지 않은 것 같습니다.
그래서 아래와 같이 코드를 작성하면 정상 작동되는 걸 확인할 수 있었습니다.
paintFilmDataList.forEach((filmData) => {
const filmBox = document.querySelector('.' + filmData.position);
// if (filmBox) {
// filmBox.innerHTML =
// '<div class="paintFilmShame">' + filmData.maxThicknessMeasurement.toString() + '</div>' +
// '<span class="paintFilmShameBar">'+ '|' +'</span>' +
// '<div class="paintFilmShame">' + filmData.minThicknessMeasurement.toString() + '</div>' +
// '<span class="paintFilmShameBar">'+ '|' +'</span>' +
// '<div class="paintFilmShame">' + filmData.averageThicknessMeasurement.toString() + '</div>';
// }
// jsp 파일에서 ``(템플릿 리터럴)을 사용하기 위해서는 아래와 같이 적용시켜야 함
// 이렇게 하면 바깥쪽 ${...}은 서버에서 처리하고, 안쪽 ${...}은 자바스크립트가 처리합니다.
if (filmBox) {
filmBox.innerHTML = `<div class="paintFilmShame">${'${filmData.maxThicknessMeasurement.toString()}'}</div>
<span class="paintFilmShameBar">|</span>
<div class="paintFilmShame">${'${filmData.minThicknessMeasurement.toString()}'}</div>
<span class="paintFilmShameBar">|</span>
<div class="paintFilmShame">${'${filmData.averageThicknessMeasurement.toString()}'}</div>
`;
}
});
'지식 정리 📝' 카테고리의 다른 글
날짜 형식을 쉽게 변경할 수 있는 정규식 (0) | 2023.12.28 |
---|---|
tailWind CSS darkMode 적용 (0) | 2023.12.18 |
input type = "text"일 때 숫자만 입력되게 정규식 이용법 (1) | 2023.12.13 |
깊은 복사(Deep copy) 경험 (0) | 2023.12.08 |
Next.js 초기 node 버전 오류 (0) | 2023.11.27 |