컴퓨터/컴퓨터 ETC

JSTL에 대하여

푸른바다23 2017. 6. 12. 16:45

JSTL에 대하여 


JAVA를 배우는 분들은 자주 쓰는 JSTL에 대해서 알아봅시다. JSTL은 "JSP STANDARD TAG LIBRARY"의 약자입니다.

보통 JSP파일에서 JAVA값을 출력하려면 아래와 같이 코드를 추가합니다. 

<%=kgon %>



하지만 화면에서도 여러 작업을 하기 위해서는 JSTL을 사용합니다. 

많이 사용하는 JSTL위주로 설명하도록 하겠습니다. 


JSTL은 먼저 해당 LIBRARY을 JSP파일 상단에 선언해야합니다.

선언하지 않으면 해당 JSTL 문법은 실행되지 않습니다. 


*코어

먼저 아래 문구를 JSP파일상단에 추가해주세요. 

(상단의 문구를 JSP파일 상단에 추가하지 않으면 JSTL문법은 실행되지 않습니다. )

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>


1. <c:set />

- 변수값을 선언할 때 씁니다. 

ex) <c:set var="kgon" value="케이곤"/>


2. <c:out />

- 변수를 출력할 때 씁니다.

ex) <c:out var="kgon"/>


3. <c:if></c:if>

- 조건문에 사용합니다.

- == 는 eq를 쓰며 !=는 ne를 씁니다.

- 값이 없는 경우 empty를 씁니다.

- 조건이 TRUE이면 <c:if> ~ </c:if>사이를 실행합니다. 

ex) <c:if test="${kgon eq '케이곤'}><c:out value="true"/></c:if>

ex) <c:if test="${kgon ne '케이곤'}><c:out value="true"/></c:if>

ex) <c:if test="${empty kgon}><c:out value="true"/></c:if>


4.  <c:choose></c:choose>

- switch문이랑 비슷합니다. [조건문]

- 여러 조건들중에 만족하는 조건을 실행시킵니다. 

(<c:when>사용합니다.)

- 여러 조건 모두 해당사항이 없는 경우 <c:otherwise>를 실행시킵니다.

ex) 

<c:choose>

   <c:when test="${kgon eq '케이곤'><c:out value="케이곤"></c:when>

   <c:when test="${kgon eq '제이곤'><c:out value="제이곤"></c:when>

   <c:when test="${kgon eq '아이곤'><c:out value="아이곤"></c:when>

   <c:oherwise>

      <c:out value="기타ETC">

   <c:oherwise>

</c:choose>


5. <c:forEach></c:forEach>

- for문이랑 비슷합니다. [반복문]

- 숫자 증가일 경우 var , begin , end , step 속성을 사용합니다.

  (begin : 초기값 , end : 종료값,  step : 증가값 )

- List, Map일 경우 var , items, varStatus 속성을 사용합니다 

  (items : List , Map변수 , varStatus : 해당 List 의 순서등 값을 알수있다)

ex) <c:forEach var="kgon" begin="1" end="10" step="2"><c:out value="${kgon}"/></c:forEach>

    <c:forEach var="kgon" items="kgons" varStatus="status"><c:out var="${status.index}"/></c:forEach>


* 함수

먼저 아래 문구를 JSP파일상단에 추가해주세요. 

(상단의 문구를 JSP파일 상단에 추가하지 않으면 JSTL문법은 실행되지 않습니다. )

<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

자주쓰는 함수는 다음과 같습니다.


1. fn:substring(kgon, 1, 5)

- kgon(문자열변수)의 1번째에서 5번째까지 문자를 리턴한다.

ex) <c:set var="kgon" value="abcdef"/>

<c:out value="${fn:substring(kgon,1,5)}"/>

==> bcdef

2. fn:contains(kgon, kgonSub)  

- kgon(문자열변수)에 kgonSub(문자열변수)가 포함되어 있는지 확인한다. 

- 포함되어 있으면 true 없으면 false값을 리턴한다.

ex) <c:out value="${fn:contains("kgon" , "k")}/> 

==> true

3. fn:indexOf(kgon,kgonSub)  

- kgon(문자열변수)에서 kgonSub(문자열변수)의 처음으로 나타나는 위치를 리턴한다.

- 시작점은 0부터 시작되며 없을 경우 -1이 리턴된다.

ex) <c:out value="${fn:indexOf("kgon","g")}"/>

==> 1


4. fn:length(kgon)      

- kgon이 배열이나 List이면 해당 개수를 , 문자열이면 문자의 갯수를 리턴한다.

ex) <c:out value="${fn:length("kgon")}"/>

==> 4

5. fn:replace(kgon, kgonBefore, kgonAfter) 

- kgon(문자열변수)내에 kgonBefore(문자열변수)를 kgonAfter(문자열변수)로 모두 바꾸어서 리턴한다. 

ex) <c:out value="${fn:replace("kgonkgon","k","j")}"/>

==> jgonjgon

6. fn:split(kgon, kgonSub)   

- kgon(문자열변수)내에서 kgonSub(문자열변수)에 따라 나누어서 배열로 구성하여 리턴한다.

ex) ${fn:split("1,2,3,4,5",",");

==> [1,2,3,4,5]


7. fn:toLowerCase(kgon)    

- kgon(문자열변수)를 모두 소문자로 바꾸어 리턴한다. 

ex) ${fn:toLowerCase("KGON");

==> kgon


8. fn:toUpperCase(kgon)    

- kgon(문자열변수)를 모두 대문자로 바꾸어 리턴한다. 

ex) ${fn:toLowerCase("kgon");

==> KGON

9. fn:trim(kgon)      

- kgon(문자열변수)의 앞뒤 공백을 모두 제거하여 리턴한다. 

ex) ${fn:toLowerCase("  kgon   ");

==> kgon



조심할점이 있습니다.

라이브러리가 없는 경우 JSTL이 실행되지 않습니다.

JSTL문법이 실행이 안될 경우 라이브러리 추가여부를 확인해주세요

반응형