본문 바로가기

Web Programming

JSTL : 조건문 <c:if> <c:choose> <c:when> <c:otherwise> 태그

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

자자.. 가장 중요한 조건문.. 이 빠졌죠? ㅎㅎ 약방의 감초처럼.. 모든 프로그래밍에서 나오는.. 그런 조건문이 JSTL에 없을리가 없죠.. -_-; 암튼.. 하나씩 살펴보도록 하실텐데요..


<c:if>

가장 잘 알고 있는 if 조건문 태그 입니다. 하지만 JSTL에서는 if 태그는 반쪽짜리 이라는 것을 염두해두시는 것이 좋겠습니다. 왜냐하면.. 얘는 else를 지원하지 않기 때문이라고 합니다.

얘도 닫는 태그가 있는 경우가 있고 없는 경우가 있는데 둘의 차이는 크게 있어보이지는 않구요.. 한번 소스를 보면서 하나하나 짚어 보도록 하겠습니다.

<body>
   <c:set value="dinfree" var="msg"/>
   msg : ${msg} <br>
   <c:if test="${msg == 'dinfree'}" var="result">
   test result = ${result } <br>
   </c:if>
</body>
자.. 살펴볼까요.. 일단 새로운 속성을 하나 볼수 있는데 그게 바로 test 입니다.. ㅋ test안에 들어가는게 보통 if 문에 사용하는 괄호안의 참 거짓을 검사하는 부분인데요.. 저부분에 조건절을 써주게 되겠구요.. 뒤에 나오는 var라는 속성에는 참 또는 거짓의 결과가 저장될 변수명을 설정해주는 거지요.. 간단하죠?

사용자 삽입 이미지

위와 같은 결과가 나오게 됩니다 ㅋ msg 가 dinfree 와 같으면 출력을 하게 되는겁니다.. ^^


<c:choose> <c:when> <c:otherwise>


얘네 세개의 태그는 다 같이 얘기를 해야 합니다. 왜냐? 얘네는 switch 문하고 똑같습니다. switch 를 선언하는 절은 choose 가 되구요.. when 은 case, otherwise는 default 입니다~ 이렇게 생각하면 간단합니다~ 예제 고고싱

   <c:choose>
       <c:when test="${param.sel == 'a'}">
           a 를 선택하셨근영
       </c:when>
       <c:when test="${param.sel == 'b'}">
           b 를 선택하셨근영
       </c:when>
       <c:when test="${param.sel == 'c'}">
           c 를 선택하셨근영
       </c:when>
       <c:otherwise>
           a, b, c 가 아닌 다른거근영...
       </c:otherwise>
   </c:choose>
자자.. 얘를 봅시다.. test는 아까 if 와 같습니다. 참인지 거짓인지를 가려줍니다. 하지만 var 속성은 없죠? sel 변수의 값이 어떤것이냐에 따라서 when 태그 내부에 있는 글자라 불리워지겠군요~

사용자 삽입 이미지

이런식으로 나오게 되겠죠.. ^^ 간단합니다~