개발자의 끄적끄적

[java & spring] JSTL IF ~ ELSE 문 - <c:if>와 <c:choose> [펌] 본문

개발/java & jsp

[java & spring] JSTL IF ~ ELSE 문 - <c:if>와 <c:choose> [펌]

효벨 2019. 11. 29. 01:00
728x90
반응형

[java & spring] JSTL  IF ~ ELSE 문 - 와  [펌]

 

전자정부프레임워크로 개발중 문법을 잘몰라서

 

참고하고 공유하고자 퍼왔습니다!

 

출처는 맨~아래 명시했습니다!

 

 

JSTL IF ~ ELSE 문 - <c:if>와 <c:choose>

 

 

JSTL에도 IF문과 같은 분기문을 기본으로 제공하는데, 우리가 사용하는 것과는 약간 내용상 차이가 있다.
우리는 보통 IF문을 사용할때 IF ~ ELSE IF ~ ELSE 를 이용하여 프로그래밍 코드를 작성하는데, JSTL 에서는 어떻게 작성되는지 한번 살펴보자.

 

 

 

 단순 IF문 : <c:if>

 

if문에서 else가 없는 단순 if문을 구성할때 사용할 수 있다.

<c:set var="name" value="홍길동" />

<c:if test="${name eq '홍길동'}">
    홍길동이 맞습니다.
</c:if>

 

 

 

 

 IF ~ ELSE 문 : <c:choose>

 

우리가 많이 사용하는 if~else 문의 경우 jstl에서는 <c:choose>를 이용하여 구성하여야 한다.

<c:set var="name" value="홍길동" />

<c:choose>

 

    <c:when test="${name eq '홍길동'}">
        홍길동이 맞습니다.
    </c:when>

 

    <c:when test="${name eq '철수'}">
        홍길동이 아닙니다.
    </c:when>

 

    <c:otherwise>
        사람이 없습니다 ㅜㅜ
    </c:otherwise>


</c:choose>



위의 구문을 jsq 코드로 표현하면 아래와 같다.

<%
    String name="홍길동" ;

    if("홍길동".equals(name)){

    }else If("철수".equals(name)){

    }else{

    }
%>

 

 

 

 

 비교기호 : eq, ne, empty

 

if문을 사용할때에는 반드시 값과의 비교를 작성하게 되는데, jstl에서는 eq, ne와 같은 비교기호를 이용해도 된다.

1. eq (==)
 비교하고자 하는 값이 동일한지를 확인할때 사용한다.

2. ne (!=)
 비교하는 값이 동일하지 않은지 확인할때 사용한다.

3. empty (== null)
 비교하는 값이 null 인지 확인할때 사용한다.
 * null이 아닌경우를 표현할때는 !empty 로 표현하면 된다.


예전에 어느 프로젝트를 진행할때 어떤분이 if ~ else문을 작성하는데, <c:choose> 태그를 이용하지 않고 아래와 같이 작성한것을 본적이 있다.

<c:set var="name" value="홍길동" />

<c:if test="${name eq '홍길동'}">
    홍길동이 맞습니다.
</c:if>
<c:if test="${name eq '철수'}">
    홍길동이 아닙니다.
</c:if>
<c:if test="${empty name}">
    홍길동이 아닙니다.
</c:if>


위와 같은 코드도 앞서 설명한 <c:choose> 예제와 동일한 결과를 내지만, 이렇게 작성하는것은 코드의 가독성이 떨어진다.
if ~ else 문을 구현을 할때에는 가급적이면 상황에 맞는 <c:choose> 태그를 작성하는게 바람직하다고 생각한다.



출처: https://fruitdev.tistory.com/131 [과일가게 개발자]

반응형
Comments