Java

JSTL Tag (1)

검정콩 2022. 5. 26. 17:49

 

JSTL Tag는 custom tag 중 자주 사용되고 유용한 것만을 모아 만들 라이브러리이다.

 

1. c:set

JSP에서 사용될 변수를 설정한다.

<c:set var="변수명" value="값" scope="영역"/>
<c:set var="변수명" scope="영역">값</c:set>

var : 변수의 이름

value : 변수에 담을 값

scope : 저장영역(page,request,session,application) - 기본값은 page

 

속성을 삭제할 경우에는

<c:remove var="변수명" scope="영역"/>

 

 

2. c:if

조건에 따라 내부 코드를 수행한다. 자바의 if 문과 비슷하나, c:if 태그에는 else 가 없다.

<c:if test="조건"></c:if>

test의 조건이 참이면 태그 몸체의 내용이 실행되며, test는 기본적으로 참/거짓만을 받을 수 있다.

test에는 EL 태그만 사용 가능하다. var 속성을 활용하면 결과를 따로 저장할 수 있다.

<c:if test="${myId eq 'admin'}" var="result">

 

 

3. c:choose

자바의 switch 문과 비슷하며, c:when 태그의 test 값이 true 면 태그 몸체를 수행한다.

c:otherwise는 어떠한 c:when 에도 해당되지 않으면 실행된다.

${param.num}
	<c:choose>
		<c:when test="${param.num == '0'}">
		<!-- <input type="text" name="num"/> 타입이 텍스트라 숫자에 '0' 씌워놓음 -->
			<h3>파라메터 값은 0 입니다.</h3>
		</c:when>
		<c:when test="${param.num eq '1'}">
			<h3>파라메터 값은 1 입니다.</h3>
		</c:when>
		<c:when test="${param.num == '2'}">
			<h3>파라메터 값은 2 입니다.</h3>
		</c:when>
		<c:otherwise>
			<h3>파라메터 값은 0~2 사이를 넣어주세요.</h3>
		</c:otherwise>
	</c:choose>

 

 

4. c:forEach

일반적인 for 문과 비슷하며, 주로 array나 collection, map 등의 값을 꺼낼 때 사용한다.

<c:forEach>var="변수" items="덩어리" begin="시작값" end="끝값" step="증가정도"</c:forEach>

items에는 배열이나 컬렉션 등의 덩어리가 들어가며, var 에는 덩어리에서 꺼낸 값을 담는다.(향상된 for 문과 비슷)

 

 

5. c:url

URL을 생성해주는 기능을 하며, param 태그를 이용해 url에 파라미터를 추가할 수 있다.

var 속성을 이용해 생성된 url 을 저장할 수 있으며 절대경로(절대 바뀌지 않음)와 상대경로(위치에 따라 계속 바뀜)를 입력할 때 사용된다.

<c:url value="url" var="url 저장할 이름"></c:url>

<c:url value="http://search.daum.net/search" var="searchUrl">
	<c:param name="w" value="blog"/>
	<c:param name="q" value="독도"/>
</c:url>

상대경로에서는 c:url 과 일반 url 의 차이가 없으며, 절대경로에서 프로젝트명 포함 여부가 다르다.

 

 

6. c:forTokens

JAVA의 Tokenizer(split 같은거)와 같은 기능을 제공한다. 

<c:forTokens>var="변수명" items="대상" delims="구분자"</c:forTokens>

<c:set var="text" value="축구,야구,농구,배구,수영,골프"/>
<c:forTokens items="${text}" delims="," var="sports">
    ${sports}
</c:forTokens>

items에 있는 문자열을 delis를 기준으로 쪼개서 var에 선언된 변수에 넣는다.

 

 

7. c:import

action tag의 import, 스크립틀릿의 inclue와 같다. 허용된 경우에 한하여 외부 사이트의 페이지도 불러올 수 있다.

<c:import url="가져올 페이지" var="변수명" scope="저장영역" charEncoding="캐릭터셋"/>

<c:import url="https://www.youtube.com/results">
	<c:param name="search_query" value="jsp"/>
</c:import>

 

 

8. c:redirect

특정 페이지 또는 특정 주소로 이동시켜준다. redirect가 실행되면 아래의 코드들은 실행될 수 없다.(이동하기 때문에)

redirect는 두 번 사용할 수 없다.

<!-- 절대경로 입력시 context 를 포함한다. -->
<%-- <c:redirect url="/index.jsp"/> --%>

<!-- https://www.youtube.com/results?search_query=jsp -->
<c:redirect url="https://www.youtube.com/results">
    <c:param name="search_query" value="spring framework"/>
</c:redirect>