: JSP 개발을 단순화하기 위한 태그 라이브러리
: 연산이나 조건문(if문)이나 반복문(for문), DB를 편하게 처리할 수 있는 것
JavaScript와 jQuery(라이브러리)같은 개념인가..
빠른 개발
- JSP를 단순화하는 많은 태그 제공
코드 재사용성
- 다양한 페이지에서 JSTL 태그 사용 가능
스크립틀릿 태그 사용 필요 ❌
스크립틀릿이란?
<%...%> 요 태그 안에 있는 JAVA 코드
링크 : https://tomcat.apache.org/taglibs/standard/
: 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" %>
: 변수 지원, URL 관리, 흐름 제어 등을 제공
c
: JSP 페이지 상단에 선언해야 함
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
태그 이름 | 설명 |
---|---|
<c:catch /> | 예외 처리 |
<c:import /> | 페이지 첨부 |
<c:out /> | 변수의 출력 |
<c:set /> | 변수의 선언 |
<c:remove /> | 변수의 제거 |
<c:choose />, <c:when />, <c:otherwise /> | switch문과 비슷 |
<c:if /> | 조건문(else는 없다) |
<c:forEach /> | 반복문 |
<c:forTokens /> | 구분자로 분할하여 반복문 |
<c:url /> | url 생성 |
<c:redirect /> | URL 이동 |
<c:param /> | 파라미터 추가 |
: 이름처럼 데이터의 포맷 형태등을 제공해주거나 변경할 때 사용
fmt
: JSP 페이지 상단에 선언해야 함
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
기능 분류 | 태그 이름 | 설명 |
---|---|---|
로케일 지정 | <fmt:setLocale /> | Locale을 지정 |
<fmt:requestEncoding /> | 요청 파라미터의 캐릭터 인코딩을 지정 | |
메시지 처리 | <fmt:message /> | 지역에 알맞는 메시지 출력 |
<fmt:bundle /> | 사용한 번들을 지정 | |
<fmt:setBundle /> | 리소스 번들을 읽어서 특정 변수에 저장 | |
숫자, 날짜 포맷팅 | <fmt:formatNumber /> | 숫자를 포맷팅 |
<fmt:formatDate /> | Date 객체를 포맷팅 | |
<fmt:parseNumber /> | 문자열로 표시된 날짜를 분석해서 숫자로 변한 | |
<fmt:parseDate /> | 문자열로 표시된 날짜를 분석해서 Date 객체로 변환 | |
<fmt:timeZone /> | 시간대 지정 | |
<fmt:setTimeZone /> | 시간대 정보를 특정 변수에 저장 |
: DataBase를 이용하여 SQL을 처리, 데이터베이스를 지정 및 연결
sql
잘 사용되지 않음 but 있으니 이런 게 있다 정도~
: JSP 페이지 상단에 선언해야 함
<%@ taglib prefix="sql" uri="http://java.sun.com/sjp/jstl/sql" %>
태그 이름 | 설명 |
---|---|
<sql:query /> | 쿼리 |
<sql:udate /> | |
<sql:param /> | |
<sql:dataParam /> | |
<sql:transaction /> | 트랜잭션 |
<sql:setDataSource /> | 데이터베이스 연결 |
: XML을 처리해주기 위한 출력, 흐름제어, XML 변환 등 사용
x
: JSP 페이지 상단에 선언해야 함
<%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/mxl" %>
태그 이름 | 설명 |
---|---|
<x:if /> | <c:if>와 동일 |
<x:forEach /> | <c:forEach>와 동일 |
<x:param /> | 파라미터 사용시 사용 |
<x:out /> | xml 내용 출력 |
<x:parse /> | xml 문서를 읽어서 파싱 |
<x:set /> | xml 경로를 변수로 저장 |
<x:transform /> | xml과 xlt 파일을 결합해서 새로운 문서 생성 |
<x:choose /> | <c:choose>와 동일(<x:when>, <x:otherwise> 사용 가능) |
: 문자열이나 컬렉션의 가공, 변환, 분석을 위해 사용
fn
: JSP 페이지 상단에 선언해야 함
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
태그 이름 | 설명 |
---|---|
${fn:toUpperCase(str)} | str을 대문자로 변환 |
${fn:toLowerCase(str)} | str을 소문자로 변환 |
${fn:trim(str)} | str 좌우의 공백 문자 제거 |
${fn:replace(str, src, dest)} | str에 있는 src를 dest로 변환 |
${fn:indexOf(str1, str2)} | str1에서 str2가 위치한 인덱스를 구함 |
${fn:contains(str1, str2)} | str1이 str2를 포함하고 있을 경우 true 반환 |
${fn:substringAfter(str1, str2)} | str1에서 str1에 포함된 str2 이후의 문자열을 구함 |
${fn:substringBefore(str1, str2)} | str1에서 str1에 포함된 str2 이전의 문자열을 구함 |
${fn:startsWith(str1, str2)} | str1이 str2로 시작할 경우 true, 그렇지 않으면 false 변환 |
${fn:endsWith(str1, str2)} | str1이 str2로 끝나는 경우 true, 그렇지 않으면 false 변환 |
${fn:escapeXml(str)} | XML의 객체 참조에 해당하는 특수문자를 처리 |
${fn:containslgnoreCase(str1, str2)} | 대소문자 구분없이 str1이 str2를 포함할 경우 true 반환 |
${fn:split(str1, str2)} | str2로 명시한 글자 기준으로 str1을 분리해서 배열로 전환 |
${fn:join(array, str2)} | array에 저장된 문자열을 합침, 각 문자열 사이에 str2가 붙음 |
${fn:substring(str, idx1, idx2)} | str.substring(idx1, idx2)의 결과를 반환 / idx2가 -1일 경우 str.substring(idx1)과 동일 |
${fn:length(obj)} | obj가 Conllection인 경우 저장된 항목의 개수 반환 / 문자인 경우 문자열의 길이 반환 |