본문 바로가기
Tip & Tech/Tech

[JSTL 정리] JSTL이란? / 사용방법 / 태그라이브러리

by 나비와꽃기린 2016. 9. 13.

1. JSTL이란?

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

- 자신만의 태그를 추가할 수 있는 기능을 제공한다.

- 주로 JSTL Core에서 c를 사용하여 <c:if>, <c:forEach>등으로 사용한다.

 


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

-JSTL API - javax.servlet.jsp.jstl-api-1.2.1.jar

-JSTL Implementation - javax.servlet.jsp.jstl-1.2.1.jar 가 필요하다.

http://jstl.java.net/download.html에서 다운받을 수 있다.

 


3. 사용법

2번에서 다운받은 libWEB-INF/lib 추가해 넣고, JSTL을 사용하고자 하는 JSP 혹은

공통 JSP와 같은 common.jsp커스텀 액션을 사용하겠다.” 라는 정의를 선언해준다.

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

 

필자의 경우는 taglibincude하는 파일을 생성한 뒤, 공통파일에 추가하여 사용하고 있다.

<tagLibs.jspf>

<%@ 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 태그 종류 사용 예


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

변수의 값을 출력해준다.

<c:out value="출력할 값" default="value가 null일 경우 설정한 default값 출력"/>
<c:out value="작성자" default="Admin" />
<c:out value="hello world!!!!!!!" />

(2) c:set (prefix="c")
변수에 값을 저장한다. setAttriubte 와 동일한 역할을 한다.

<c:set var="변수명" value="9999999 "/>
<c:set var="변수명" > 9999999 </c:set>
<c:set var="변수명" value ="9999999 " scope=”page”/>


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

범위안에서 반복문을 수행한다. for와 동일한 역할을 한다.

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

다음 소스는 i라는 변수를 사용하여 1부터 10까지 1씩 증가하며 반복문을 수행한다.

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


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

조건문을 수행한다. if와 동일한 역할을 한다.

<c:if test="${pageInfo.PAGE_EDIT eq 'Y'}">
       <h2>작업중입니다.</h2>
</c:if>


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

if, else 구문 역할을 한다.

<c:choose>
  <c:when test="${pageInfo.PAGE_EDIT eq 'Y'}">
    pageInfo.PAGE_EDIT값이 Y일 때 해당되는 블록
  </c:when>
  <c:when test="${pageInfo.PAGE_EDIT eq 'N'}">
    pageInfo.PAGE_EDIT값이 N일 때 해당되는 블록  </c:when>
  <c:otherwise>
    pageInfo.PAGE_EDIT값이 N도 Y도 아닐 때 해당되는 블록
  </c:otherwise>
</c:choose>


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

url 주소를 생성해준다.

$.ajax({
type:"POST",
             url: '<c:url value="/board/data/getList"/>',


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

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



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

댓글1