JSP Standard Tag Library 의 약자로 JSP 에서 사용하는 커스텀 태그 공통으로 사용하는 코드의 집합을
사용하기 쉽게 태그화 하여 표준으로 제공한 것을 말함
//선언 방식
<%@ tagliburi=“http://java.sun.com/jsp/jstl/core"prefix="c"%>
//예시
<%@tagliburi="http://java.sun.com/jsp/jstl/core"prefix="c"%>
<c:outvalue="${'WelcometojavaTpoint'}"/>
JSTL 라이브러리 등록
https://www.javapoint.com/jsppages/src/jstl-1.2.jar
상위링크를통해jstl-1.2.jar파일설치후이클립스프로젝트내
WebContent/WEB-INF/lib 내에등록하고사용하고자하는jsp파일에서선언
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jstl/functions"%>
JSTL 태그 종류
core Tags : 변수와 url, 조건문, 반복문 등의 로직과 관련된 JSTL 문법 제공
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core prefix="c"%>
Formatting Tags : 메시지 형식이나, 숫자, 날짜 형식과 관련된 포맷 방식 제공
<%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt prefix="fmt"%>
Function : trim,substring 과 같은 여러 문자열 처리 함수 제공
<%@ taglib prefix="fn" uri="http://java.sun.com/jstl/functions prefix="fn"%>
XML Tags : 데이터의 XML 파싱 처리등 XML 문서를 화면으로 읽어오는데 필요한 라이브러리
<%@ taglib prefix="fn" uri="http://java.sun.com/jstl/xml prefix="x"%>
SQL Tags : 페이지 내에서 Database를 연동하고 필요한 쿼리를 실행할 수 있는 라이브러리
<%@ taglib prefix="fn" uri="http://java.sun.com/jstl/sql prefix="sql"%>
JSTL Core Tags
<c:set> 변수를 선언하고 나서 그 변수에 초기 값 대입 (자바에서 변수를 선언하는 방식과 비슷)
Java 변수선언방식: intnum= 100;
<c:set>변수선언방식: <c:setvar=“num” value=“100” />
사용법 :
<c:set>에서 변수 타입은 별도로 선언하지 않지만 초기 값은 반드시 기술해야 하며
<c:set>으로선언한변수는EL식안에서사용가능
하지만 JSP<% %>같은 스크립틀릿요 소 에서는사용 불가능
<c:set var=“num” value=“100” />
${num} * <c:set>에서선언한변수는EL식안에서사용가능
<c:set> scope 속성
scope속성을 이용하면 page영역 뿐만 아니라
request, session, application 영역에 속성 저장 가능(미 설정시 기본값은 page)
<c:setvar="num" value="100" scope="request" />
<c:set> 태그배열 속성
<c:set>의 body 부분에“, “를 이용해서 배열이나 Collection처럼
여러 개의 값 지정 가능* body에 있는 값이 array변수에 할당된 변수 값 이 됨
<c:set var="array" scope="request">
yellow, blue, pink, red, green
</c:set>
<c:remove>
<c:set>으로 선언한 변수는 page, request, session, application영역에
속성으로 저장되기 때문에 삭제해야 할 필요가 있을때 사용한다.
<c:removevar=“num1” scope=“request”>
* request영역에 num1이라는 변수제거,
만일scope속성을정의하지않으면
page, request, session, application영역에 저장되어 있는
num1이라는 이름의 속성을 모두 찾아 제거한다.
<c:out>
출력문을 만드는 태그이다
<c:out value="출력값" default="기본값"/>
<c:out value="출력값"> 기본값</c:out>
Value 에 EL 표현식을 쓸 수 있다.
Value 값이 null 이면 기본값이 출력되고 기본값이 없으면 빈 문자열이 출력된다.
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<c:out value="Hello World" /><br>
<c:out value="${null}">JSTL</c:out><br>
<c:out value="Hello">World</c:out><br>
<c:out value="${null}" />
</body>
</html>
<c:if>
자바 프로그램의 if문 과 비슷한 역할을 하는 태그로 조건식은
test라는 속성 값으로 지정(이때 조건식은 반드시 EL형식으로 기술)
<c:if test="${num1 > num2}">
num1이더큽니다.
</c:if>
<c:choose>
자바 프로그램의 switch문과 비슷한 역할을 하는 태그로
<c:when>, <c:otherwise>태그와 함께 사용 되는데,
각각 switch문의 case, default절과 비슷한 역할
<c:choose>
<c:when test="${num== 0}"> * 조건식
처음 뵙 겠습니다.<br>
</c:when>
<c:when test="${num== 1}">
다시 뵙게 되어 반갑습니다.<br>
</c:when>
<c:otherwise> * 아무 조건도 만족하지 못 할 경우 실행
안녕하세요.<br>
</c:otherwise>
</c:choose>
<c:forEach>
자바의 for, for-in문에 해당하는 기능 제공
<c:forEach begin="1" end="10" items="${list}" var="value">
반복문<br>
</c:forEach>
items : 반복할 객체 명(Collection 객체)
begin : 반복이 시작할 요소 번호 (0..n)
end: 반복이 끝나는 요소 번호
step : 반복할 횟수 번호
var : 현재 반복 횟수에 해당하는 변수 이름
varStatus : 현재 반복에 해당하는 객체 요소
current 현재 반복 회수
index : 반복 라운드의 제로 기반 인덱스
count: 반복 라운드의 1 기반 인덱스
first 현재 라운드가 반복을 통한 첫 번째임을 의미
last : 현재 라운드가 반복을 통한 마지막 번째임을 의미
<c:forEach items="${booklist}" var="book" varStatus="status">
<tr>
<td><c:out value="${status.count}"/></td>
<td><c:out value="${book.name}"/></td>
</tr>
</c:forEach>
<c:forTokens>
문자열에 포함된 구분자를 통해 토큰을 분리해 반복처리
items속성에는 토큰을 포함하는 문자열을 지정하고
delims속성에는 토큰을 분리 하는데 사용할 구획 문자 기술
<c:forTokens var="color" items="yellow blue pink red green" delims=" ">
${color} <br>
</c:forTokens>
<c:url>
url경로를 생성하고 해당url의 param속성을 선언하여
쿼리스트링을 정의 할 수 있는 태그로 해당 태그를 통해 url경로와 관련 쿼리스트링 값을 미리 설정하여 제어 가능
<c:url var="url" value="jstl.jsp">
<c:param name="name" value="abc"/>
</c:url>
<a href="${url}">jstl.jsp</a>
'JSP,Servlet,JSTL' 카테고리의 다른 글
Servlet/JSP 동작 순서 (0) | 2021.12.08 |
---|---|
HTTP 프로토콜이란? (0) | 2021.12.08 |
Servlet & JSP (0) | 2021.12.08 |
EL (0) | 2021.09.28 |
JSTL 복습-01 (0) | 2021.09.28 |