본문 바로가기
JAVA/JSP, Servlet

[JSTL]이란? JSTL CORE태그 사용법

1. JSTL 이란?

-JSP 표준 태그 라이브러리(여러 프로그램이 공통으로 사용하는 코드를 모아놓은 집합)의 약어

-이미 만들어진 태그를 이용하여 JSP환경에서 보다 가독성 좋게 JAVA를 사용할 수 있다.

-기본적으로 제공하는 태그 외에도 자신만의 태그를 만들어서 사용할 수 있다.

 

 

 

 

 

2. JSTL 라이브라러 다운로드

-http://tomcat.apache.org/download-taglibs.cgi(다운로드 경로)

 

 

 

 

 

 

3. JSTL 라이브러리 적용방법

아래와 같이 taglib지시문을 이용하여 선언 후에 사용가능하다.

종류가 여러가지 있으니 본인이 필요한 부분만 선언해서 사용하면 된다.

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c-rt" %>
<%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt" %>
<%@ taglib uri="http://java.sun.com/jstl/fmt_rt" prefix="fmt-rt" %>
<%@ taglib uri="http://www.springframework.org/tags" prefix="spring" %>
<%@ taglib uri="http://www.springframework.org/security/tags" prefix="sec" %>

 

 

 

 

 

4. JSTL 사용방법 및 예시

JSTL중에 가장 많이 사용하는 core태그(prefix="c")만 간단한 예시를 통해 알아보겠다.

 

(1) c:cet / c:remove (prefix="c") 

변수의 선언 및 제거

<c:set var="value1" scope="request" value="choi"/>
성 : ${value1} // 값이 출력된다

<c:remove var="value1" scope="request"/>
성 : ${value1 } // 값이 없다

 

 

(2) c:out (prefix="c")

변수의 값을 출력

EL태그를 사용 안하고 out을 사용하는 경우는 아래 예시처럼 escapeXml을 통하여

세부적인 설정이 가능할 뿐만 아니라 3항연산자를 사용하거나 엄격한 태그규칙을 지키기에 용이하기 때문이다.

<c:out value="내용물" default="value가 null일 경우 설정한 default값이 출력"/>

<c:set var="t" value="<script type='text/javascript'>alert(1);</script>" />
${t}
<c:out value="${t}" escapeXml="true" />
<c:out value="${t}" escapeXml="false" />

 

 

(3) c:if (prefix="c")

if 조건문 역할

<% request.setAttribute("n", 10); %>

<c:if test="${n == 0}">
n은 과 0과 같습니다.
</c:if>

<c:if test="${n == 10}">
n은 과 10과 같습니다.
</c:if>

 

 

(4) c:forEach (prefix="c")

for문의 반복문과 동일한 역할을 한다.

begin : 시작 값, end : 마지막 값, step : 증가단위

begin, end, step은 생략 가능하며 생략할 경우 처음부터 끝까지 반복문을 실행한다.

<%
    List<String> list = new ArrayList<>();
    list.add("hello");
    list.add("world");
    list.add("!!!");
    request.setAttribute("list", list);
%>


<c:forEach items="${list}" var="item">
${item } <br>
</c:forEach>




<c:forEach var="i" begin="1" end="10" step="1"> 
	<c:set var="weekNum" value="${(i+startWeekDay-2)%7}"></c:set> 
</c:forEach>

 

 

(5) c:choose / c:when (prefix="c")

if, else 구문 역할을 한다.

<% request.setAttribute("score", 83); %>

<c:choose>
    <c:when test="${score >=90 }">
    A학점입니다.
    </c:when>
    <c:when test="${score >=80 }">
    B학점입니다.
    </c:when>
    <c:when test="${score >=70 }">
    C학점입니다.
    </c:when>
    <c:when test="${score >=60 }">
    D학점입니다.
    </c:when>
    <c:otherwise>
    F학점입니다.
    </c:otherwise>            
</c:choose>

 

 

(6) c:url  (prefix="c")

url 주소를 생성해 준다.

$.ajax({ 
	type:"POST", 
	url: '<c:url value="/board/bbslist"/>',
		...
    });

 

 

(7) c:include  (prefix="c")

JSP에서 페이지 include와 같은 역할을 한다.

<c:import url="http://www.google.com">

 

 

 

 

 

'JAVA > JSP, Servlet' 카테고리의 다른 글

<Servlet>이란 무엇일까? 서블릿 개념정리  (0) 2019.05.18
<Servlet>redirec와 forward개념  (0) 2019.05.15

댓글