카테고리 없음

JSTL Core Library 조건문

최종군 2024. 9. 21. 20:47

변수 선언 : c:set 

 

JSTL로 변수 선언하기 

* 변수 선언과 동시에 초기화 

<c:set var="num1" value="10"></c:set>

 

num1 : ${num1} 

${ 변수명} 을 통해서 출력 

scope="request" -> scope를 설정할 수 있다 

 

<c:set var="num2" value="20" scope="request">

 

value 속성 대신 시작태그와 종료태그 사이에 초기값을 지정 가능하다 

 

</c:set>

 

변수 삭제 : <c:remove var="삭제할 변수명" [scope="삭제할 scope"] >

해당 scope에 removeAttribute()를 사용하여 제거하는 것과 동일하게 처리 

 

<p>addNum : ${addNum} </p>
<c:remove var="addNum" scope="session"/>
<p>제거 후 addNum : ${addNum}</p> <!-- 공백으로 표시됨 -->

<p>page scope에 저장된 result  : ${pageScope.result}</p> 
<p>request scope에 저장된 result  : ${request.result}</p> 

 

모든 스코프에서 제거 스코프를 지정을 안할 시 

모든 스코프에서 해당 변수명을 삭제한다 

 

* 변수 데이터 출력 : 

<c:out value="출력하고자 하는 값" [defaul="기본값"] escapeXml= [true|false] = 기본값 true>

 

<c:out value="${addNum}" default="데이터없음"/>

addNum에 해당하는 값이 없으면 일반적으로 빈값이 출력되지만

defaul를 설정하면 default에 담긴 값이 나온다. 

 

<c:set var="outData" value="<b>강조태그!!!</b>"/>
<c:out value="${outData}" escapeXml="false"/> 

 

c:set으로 설정된 outData에 담긴 값은 태그 b태그를 포함해서 

선언이 되어있다. 

 

escapeXml이 true일 경우 해당 b태그는 입력된 그래도 (해석을 하지 않은 상태로 출력을 하게 된다)

escapeXml에 false를 줄 경우 b태그는 해석을 한 상태 즉 b태그 영향을 받는 상태로 출력이 된다.

 

조건문 : (c:if test="조건식")

 

Java의 if문과 비슷한 역할을 하는 태그이다

조건식은 test 속성에 작성한다(EL 구문을 사용하여 작성한다)

 

<c:if test="${num1 > num2}">
num1이 num2보다 크다아아아아아아앙
</c:if>

test에 비교할 ${} EL문을 사용을 하여

조건식 비교 

<c:if test="${num2 gt num1}">
num2이 num1보다 크다아아아아아아앙
</c:if>

 

else if  : 

Java의 if - else, if - else if 문과 비슷하게 동작하는 태그이다 

 

<c:choose>
<c:when test="${num1 gt 20}">20보다 큼</c:when>
<c:when test="${num1 ge 10}"><h4>10보다 크거나 같음</h4></c:when>
<c:otherwise>10보다 작음</c:otherwise>
</c:choose> 
<hr>

 

choose 구문 안에 

when을 통해서 조건식 비교 

otherwise는 자바의 else문과 같은 역할을 한다.