JSTL
JavaServer Pages Standard Tag Library의 약자이며, JSP의 대표적인 커스텀 태그(Custom Tag) 입니다.
Custom Tag
JSP(JavaServer Pages)에서 제공하는 기능으로, 개발자가 직접 태그의 동작을 정의하여 사용할 수 있게 해줍니다. 기본적으로 제공되는 JSP 액션 태그나 EL(Expression Language)만으로는 원하는 기능을 구현하기 힘들 때, 커스텀 태그를 활용해 재사용 가능한 컴포넌트를 만들 수 있습니다.
하지만, 저처럼 JSP를 처음 배우는 입장에서 이미 있는 태그도 다 쓰지 못하는데 커스텀 태그까지 만들어쓰기에는 무리.
JSTL 다운로드
톰캣 공식 홈페이지 https://tomcat.apache.org/taglibs/standard/
4개 JAR 파일을 사용중인 Dynamic Web Project > WEB-INF > lib 폴더에 넣으면 설치 끝!
JSTL은 여러 카테고리로 나누어져 있습니다:
Core Tags (c): 기본적인 작업들을 지원하는 태그들 (예: c:forEach, c:if, c:set 등).
Formatting Tags (fmt): 날짜, 숫자, 문자열의 포맷팅 및 국제화와 관련된 태그들 (예: fmt:formatDate, fmt:formatNumber 등).
SQL Tags (sql): 데이터베이스와의 직접적인 작업을 지원하는 태그들 (예: sql:query, sql:update 등). 일반적으로 실제 프로덕션 환경에서는 JDBC나 ORM 방식의 데이터 액세스 레이어를 사용하는 것이 좋기 때문에, 이 태그들은 주로 간단한 프로토타입 또는 교육용 목적으로 사용됩니다.
XML Tags (x): XML 처리와 관련된 태그들 (예: x:parse, x:forEach 등).
Functions (fn): 문자열 처리와 관련된 유용한 함수들 (예: fn:contains, fn:toUpperCase 등).
위 태그중 Java를 배운 백엔드개발자는 Core Tag와 Fomatting Tag가 프론트엔드 개발자와의 협업에 도움이될 수 있다고 합니다.
Core Tag 종류(많이 쓰는 것)
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
taglib 디렉티브를 사용하여 페이지를 추가합니다.
<c:out>: 값 출력
<c:out value="${someVariable}" default="Not Available" />
<c:out value="<div>테스트중</div>" escapeXml="false" />
<c:set>: 변수 설정
<c:set var="myVar" value="${anotherVar}" scope="session"/>
<c:remove>: 변수 제거
<c:remove var="myVar" scope="session"/>
<c:if>: 조건문
<c:if test="${someCondition}">
Condition is true.
</c:if>
예시
<c:if test="${3 > 1 }">
크다!<br />
</c:if>
<c:choose>, <c:when>, <c:otherwise>: 선택 구문
<c:choose>
<c:when test="${someVar == 'value1'}">
First condition.
</c:when>
<c:when test="${someVar == 'value2'}">
Second condition.
</c:when>
<c:otherwise>
Default condition.
</c:otherwise>
</c:choose>
예시
<c:choose>
<c:when test="${3 < 1 }">크다!<br /></c:when>
<c:when test="${3 > 54 }">크다?<br /></c:when>
<c:otherwise>전부 거짓이야, default<br /></c:otherwise>
</c:choose>
<c:forEach>: 반복문
<c:forEach items="${listOfItems}" var="item">
<c:out value="${item}" />
</c:forEach>
<c:forTokens>: 토큰 기반의 반복문
<c:forTokens items="Zebra, Lion, Tiger" delims=", " var="animal">
<c:out value="${animal}" />
</c:forTokens>
<c:url>: URL 생성
<c:url value="/somePath.jsp" var="myUrl">
<c:param name="param1" value="value1" />
</c:url>
<c:param>: URL 파라미터 추가 (보통 <c:url> 태그와 함께 사용)
<c:url value="/somePath.jsp" var="myUrl">
<c:param name="param1" value="value1" />
</c:url>
<c:redirect>: 페이지 리다이렉트
<c:redirect url="/anotherPage.jsp"/>
<c:catch>: 예외 처리
<c:catch var="exception">
<c:out value="An error occurred." />
</c:catch>
Formatting Tag 종류(많이 쓰는 것)
<fmt:formatNumber>: 숫자 형식 지정
<fmt:formatNumber value="${someNumber}" type="currency" currencySymbol="$"/>
<fmt:formatDate>: 날짜와 시간 형식 지정
<fmt:formatDate value="${someDate}" type="date" pattern="yyyy-MM-dd"/>
<fmt:parseNumber>: 문자열을 숫자로 파싱
<fmt:parseNumber value="${stringNumber}" var="parsedNumber" integerOnly="true"/>
<fmt:parseDate>: 문자열을 날짜로 파싱
<fmt:parseDate value="${stringDate}" var="parsedDate" pattern="yyyy-MM-dd"/>
<fmt:setLocale>: 로케일 설정 (다국어 및 지역화를 위해)
<fmt:setLocale value="en_US"/>
<fmt:bundle>: 리소스 번들 설정 (다국어 지원을 위한 프로퍼티 파일 로딩)
<fmt:bundle basename="com.example.messages"/>
<fmt:setBundle basename="com.example.messages"/>
<fmt:message>: 특정 로케일에 대한 메시지 가져오기
<fmt:message key="greeting"/>
<fmt:requestEncoding>: request 인코딩 설정
<fmt:requestEncoding value="UTF-8"/>
'Java > JSP' 카테고리의 다른 글
[JSP] JavaBean/JSP Bean (0) | 2023.10.10 |
---|---|
JSP란 무엇인가? (1) | 2023.10.10 |
[JSP](EL)Expression Language (0) | 2023.10.10 |