JSTL (JSP standard tag library)
많은 JSP Application의 공통적인 핵심 기능을 capsule화하는 유용한 JSP tag의 모음이다.
JSP 표준 tag library의 약자이며, JSP의 taglib으로 custom하여 사용하는 편리한 외부 공식 Library이다.
JSTL Homepage에서 해당 Library를 설치하고 추가해 준 뒤 taglib
으로 import한다.
또는 하단 Tomcat site에서 download가 가능하다.
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
Apache Taglibs - Apache Standard Taglib: JSP[tm] Standard Tag Library (JSTL) implementations
<!-- Copyright 1999-2011 The Apache Software Foundation Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/
tomcat.apache.org
JSTL 문법
- Core (prefix : c): 변수 선언, 실행 흐름 제어, page 이동
- Formatting (prefix : fmt): 숫자, 날짜, 시간 format. 국제화, 다국어 지원 기능
- Database (prefix: sql): DB data 입력, 수정, 삭제, 조회 기능
- XML (prefix: x): XML 문서 처리
- Function (prefix: fn): 문자열 제공 함수 기능
JSTL Method
Core Library
Method tag | Description | Ex |
<c:out> | 내용 출력 기능. | <c:out value="${post.pst_writer}" default="익명"> value 값이 null일 경우 default로 대체. |
<c:set> | 저장 객체의 setAttribute 기능. 과일에 사과 String을 저장. Scope를 생략하면 Page에 기본 저장됨. |
<c:set var="과일" value="사과" scope="session" /> |
<c:remove> | removeAttribute 기능. Scope의 변수의 속성 값을 제거. Scope를 생략하면 모든 범위 속성 값 제거. |
<c:remove var="과일" /> |
<c:if> | if 조건문. else if와 else 지원 불가. EL 연산자 사용 가능. |
<c:if test="조건식" var="조건을 검사하고 return 값(boolean)을 저장하는 변수 이름" scope="변수 저장 위치." /> |
<c:choose> | if, else if, else 가능. true일 때 <c:when> (중복 사용 가능), false일 때 <c:otherwise> 사용 가능. |
<c:chosse> <c:when test="조건식"> 조건 true </c:when> <c:otherwise> 조건 false </c:otherwise> </c:choose> |
<c:forEach> | Collection 반복문. Array, Collection, Iterator, Enum, Map 지원 var: Bean 객체일 경우 Class 자동 mapping. varStatus: 속성을 정의한 객체. |
<c:forEach begin="시작 값" end="끝 값" step="증가 값" var="count, 값이 저장될 변수" /> OR <c:forEach items="collection 객체" var="collection 객체 저장 객체, 변수" varStatus="속성" /> |
<c:forTokens> | Java의 StringTokenizer 기능. | <c:forTokens item="Array, Collection 객체" delims="구분자" var="변수" begin="시작 값" end="끝 값" step="증가 값" /> <c:forTokens var="abc" items="안녕/하세요/안녕히/가세요" delims="/" /> |
<c:catch> | Try-Catch문. try-catch에 해당하는 code는 따로 작성. 예외 내용을 EL을 이용하여 빼서 처리. |
try{ java의 실행문 } catch (Exception error){ error 표시 }; <c:catch var="x"> 실행문 </c:catch> ${error 표시} |
<c:redirect> | parameter 값을 지정된 url로 전송. | <c:redirect url="home.jsp"> <c:param name="hi" value="안녕하세요" /> </c:redirect> |
<c:import> | <jsp:include>와 같은 기능. | <c:import url="URL" var="변수" scope="영역" charEncoding="인코딩"> |
<c:url> | GET 방식으로 parameter 전송. URL에 자동으로 context path를 붙임. 조회 값이 계속 URL에 따라다니는 경우 name 값을 URL encoding하기 위해 <c:param>과 같이 이용. |
<img src="<c:url value='/images/btn.png' />" /> <c:url value="/userSearch.do" var="url"> <c:param name="name" value="김자바" /> <c:param name="page" value="3" /> </c:url> |
<c:forEach>
items : forEach 돌릴 Collection 개체. (controller에서 view에 뿌리려고 만든 model 객체.
begin : 반복문의 시작값 설정.
end : 반복문의 종료값 설정.
step : 반복문의 증가값을 설정.
var : 반복문의 순회시 해당하는 값을 담을 변수를 설정한다. ${var에적은것.키이름} 식으로 적음.
varStatus : 변수의 상태를 담을 변수 설정. 값이 필요하면 ${status.status}식으로 사용.
varStatus :
예 )<c:forEach items="${LIST}" var="item" varStatus="status"> 선언 후
----
${status.current} : 현재 아이템
${status.index} : 0부터의 순서
${status.count} : 1부터의 순서
${status.first} : 현재 루프가 처음인지 반환
${status.last} : 현재 루프가 마지막인지 반환
${status.begin} : 시작값
${status.end} : 끝값
${status.step} : 증가값
'Web > JSP' 카테고리의 다른 글
[JSP] JSP란? JSP의 개념과 문법 정리 (0) | 2022.07.11 |
---|