[JSP] JSTL에서 조건식, 삼항연산자 사용하기

SHORTCUT

    반응형

    방법

    <c:set var="val1" value="${tmp1 eq '' || empty tmp1 ? 'N' : 'Y'}">

    JSTL 표기 안에다가 필요한 식을 기입하면 된다!

    ${ 조건 ? 참일 경우 : 거짓 일 경우}

     

    사용 예

    나는 컨트롤러에서 받은 변수의 검증 여부삼항연산자를 통해서 처리한다.

    예를 들어 컨트롤러에서 reviewYn 이란 변수를 받아오고 사용 유무에 따라 HTML 코드의 랜더링 여부가 결정되는 코드가 있다고 하자.

     

    <c:if test="'${reviewYn}' == 'Y'">
    	<!-- 리뷰 레이어 사용 -->
    	<div class="review-wrapper">
        	...
        </div>
    </c:if>
    <c:if test="'${reviewYn}' == 'N'">
    	<!-- 리뷰 레이어 미사용 -->
    	<div class="no-review-wrapper">
        	...
        </div>
    </c:if>

     

    이 때, 컨트롤러에서 null 값이 넘어오는 경우를 핸들링 해야 한다.

     

    단순히 c:if test="조건식" 안에다가 empty reviewYn 을 추가하기 보단 삼항연산자를 활용해 값이 없을 경우, N 으로 설정하도록 하는 것이 에러를 핸들링하고 코드를 직관적으로 짜기 효율적이다.

     

    <c:set var="reviewYn" value="${reviewYn eq '' || empty reviewYn ? 'N' : 'Y'}">
    컨트롤러에서 reviewYn 이라고 받았다고 해서, c:set 할 때 다른 변수명을 기입할 필요는 없다.
    그냥 받아온 변수명 그대로 var="reviewYn" 해도 된다.
    반응형

    댓글

    Designed by JB FACTORY