JSTL

비비빅·2023년 9월 11일
0

: 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" %>

📌 태그

✍🏻 Core Tag

: 변수 지원, 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 />파라미터 추가

✍🏻 Formatting Tag

: 이름처럼 데이터의 포맷 형태등을 제공해주거나 변경할 때 사용

  • 접두사는 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 />시간대 정보를 특정 변수에 저장

✍🏻 SQL Tag

: 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 Tag

: 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> 사용 가능)

✍🏻 Function Tag

: 문자열이나 컬렉션의 가공, 변환, 분석을 위해 사용

  • 접두사는 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인 경우 저장된 항목의 개수 반환 / 문자인 경우 문자열의 길이 반환

📝 참고링크

🧷 https://bvc12.tistory.com/237

0개의 댓글