본문 바로가기
program

[JSP] choose, when, otherwise 사용법

by 믹스 2019. 8. 20.

#1942

이미 프로그램이 완성된 페이지를 수정할 일이 생겨서 따로 HTML을 만들기 보다는 직접 jsp를 수정하는게 편할것 같아 작업을 시작했는데 화면에 자꾸 에러를 뿌리더군요. 해결한 김에 메모 차원의 포스팅입니다.

<c:choose> when과 otherwise를 감싸는 필수 요소
<c:when> 선택된 상태, 기능이 적용된 상태를 처리할 때는 when에 작업<c:otherwise> choose 안에서 default 상태로 처리할 때는 otherwise에 작업

원래 파일은 대충 아래와 같은 구조를 가지고 있었습니다.

<div class="center">
  <c:choose>
    <c:when test="${...}">
      <button type="button" class="check01 on" onclick="">확인</button>
    </c:when>
    <c:otherwise>
      <button type="button" class="check01" onclick="">확인</button>
    </c:otherwise>
  </c:choose>
</div>

이 버튼들을 감싸는 블럭이 새로 필요하게 되었고 다음과 같이 바꿨더니 문제가 없긴 했는데.. 이런식으로는 무의미한 블럭이라는 생각이 들었습니다. 뭐랄까 이쁘지 않은 코드?

<div class="center">
  <c:choose>
    <c:when test="${...}">
      <div class="first-box">
        <button type="button" class="check01 on" onclick="">확인</button>
      </div>
    </c:when>
    <c:otherwise>
      <div class="first-box">
        <button type="button" class="check01" onclick="">확인</button>
      </div>
    </c:otherwise>
  </c:choose>
</div>

그래서.. 그럼 choose 와 when 사이에 박스를 추가시키면 되겠거니 생각했었는데.. 이게 에러를 뿜어내더군요. 아, 이게 틀린거구나..

<div class="center">
  <c:choose>
    <div class="first-box">
      <c:when test="${...}">
        <button type="button" class="check01 on" onclick="">확인</button>
      </c:when>
      <c:otherwise>
        <button type="button" class="check01" onclick="">확인</button>
      </c:otherwise>
    </div>
  </c:choose>
</div>

그래서 최종적으로 choose 를 감싸는 블럭으로 처리를 하니까 문제가 없어지더군요. 드디어 해결.

<div class="center">
  <div class="first-box">
    <c:choose>
      <c:when test="${...}">
        <button type="button" class="check01 on" onclick="">확인</button>
      </c:when>
      <c:otherwise>
        <button type="button" class="check01" onclick="">확인</button>
      </c:otherwise>
    </c:choose>
  </div>
  <div class="second-box">
  ..
  </div>
</div>

이로써 jsp를 접할때 스스로 해결할 수 있는 부분이 한가지 늘었습니다.

728x90
반응형

댓글