Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- frontend
- scroll
- javascript
- Spring
- Ubuntuos
- 설치
- EACCES
- reactjs
- apache
- 손쉬운사용키보드
- 프론트엔드
- Linux
- remotessh
- 백수일지
- 오류
- srollIntoView
- React
- WINDOWS10
- Ubuntu에 Docker
- error
- MAC
- vscode
- eclipse
- 리눅스
- 사용자화면
- java
- 손쉬운 사용 키보드
- 자바스크립트
- JS
- MariaDB
Archives
- Today
- Total
평범한 이야기
[오류] JSTL <c:choose> Error 를 만나다! 본문
반응형
오늘은 <c:choose> 태그를 적용하던 중 오류를 만났다.
상황은 jsp 페이지에서 String 으로 append() 를 하여 html 을 출력하는 것이었다.
받아오는 값 중에 null 일 경우 '-' 를 출력하고, 만일 null이 아니라면 받아 온 값을 출력하도록 <c:choose><c:when><c:otherwise> 태그를 활용하였다. 그런데! 분명 문제가 없어보임에도 아래와 같은 오류가 발생하였다.
1월 14, 2021 4:03:42 오후 org.apache.catalina.core.StandardWrapperValve invoke 심각: Servlet.service() for servlet [action] in context with path [] threw exception [Request processing failed; nested exception is org.apache.tiles.request.render.CannotRenderException: ServletException including path ....[중략]
</h3><p>114: Illegal text inside "c:choose" tag: ""; ...".</p>
<p>116: Illegal text inside "c:choose" tag: ""; ...".</p>
<p>122: Illegal text inside "c:choose" tag: ""; ...".</p>
혹 <c:choose>태그가 String 으로 묶기 위해 사용한 "" 를 인식을 못하는 것인가 하여 '' 로 바꾸어 적어보기도 하였지만,
해결되지 않았다. 그래서 <c:choose>태그 속에 ""가 없도록 아예 하나의 String " "안에 <c:choose>태그에 속하는 모든 문장을 담아 실행을 해보았다. 오!!!!
정상적으로 실행이 되는 것을 확인하였다.
흠..... 검색도 해보고 옆에 계신 대리님께도 여쭤보았지만, 결론은 " " 을 잘못된 text로 인식하는 것으로 생각이 된다....
아래는 오류가 발생했던 방식이다. " " 에서 ' ' 로 바꿔 봤을 때 문장.
[오류발생 사례1]
addHtml +=' <c:choose> ';
addHtml +=' <c:when test="${item.value ne null }"> ';
addHtml +=' <td class="ac">${item.value}</td> ';
addHtml +=' </c:when> ';
addHtml +=' <c:otherwise> ';
addHtml +=' <td class="ac"> - </td> ';
addHtml +=' </c:otherwise> ';
addHtml +=' </c:choose>
정상 실행이 되었을 때 방식은 아래와 같다.
[오류해결 사례]
addHtml +=' <c:choose><c:when test="${item.value ne null }"><td class="ac">${item.value}</td></c:when><c:otherwise> <td class="ac"> - </td></c:otherwise></c:choose> ';
' ' 안에 <c:choose> 태그의 내용을 모두 적었더니 정상실행이 되었다.
그런데 마지막으로 한 번 더 시도해본 더하기 방식도 오류가 발생하였다. 내용은 아래와 같다.
[오류발생 사례2]
addHtml +=' <c:choose>'
+ '<c:when test="${item.value ne null }">'
+ '<td class="ac">${item.value}</td>'
+ '</c:when>'+ '<c:otherwise>'
+ '<td class="ac"> - </td>'
+ '</c:otherwise>'+ '</c:choose>';
Illegal text inside "c:choose" tag: "'+
...".</p><p>122: Illegal text inside "c:choose" tag: "'+
...".</p><p>128: Illegal text inside "c:choose" tag: "'+
검색을 해보면서 <c:choose> 태그의 비슷한 오류들이 많다는 것을 알 수 있었다.
츄즈 요녀석!
반응형
'컴퓨터 속 이야기 > IT 기타' 카테고리의 다른 글
[MAC] VScode Remote ssh: 비밀번호 없이 접속하기 (0) | 2024.03.07 |
---|---|
[IE] 가상화 경로 Virtualized (0) | 2021.02.24 |
[숫자 표현 형식] 소수점 0. 출력이 안되는 이유 (0) | 2021.01.24 |
[컴퓨터구조] 하드웨어 + 소프트웨어 (0) | 2021.01.13 |
[오류]Error parsing HTTP request header (0) | 2021.01.11 |