[JSP] JSTL에서 조건식, 삼항연산자 사용하기
- develop/java&spring
- 2022. 1. 24.
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"
해도 된다.
반응형