본문 바로가기
front-end

JSTL 개념, 라이브러리 종류

by CodeMango 2023. 3. 20.

JSTL이란?

JSTL(JSP Standard Tag Library)은 JSP(JavaServer Pages)에서 자주 사용되는 로직을 간결하게 작성할 수 있도록 지원하는 라이브러리입니다.

JSP는 HTML 코드와 Java 코드를 혼합하여 작성하는 서버 측 스크립트 언어입니다. JSP 페이지에서 자주 사용되는 Java 코드는 주로 스크립트릿(Scriptlet) 태그("<% %>")를 사용하여 작성합니다. 하지만 스크립트릿 태그를 남발하면 코드의 가독성이 떨어지고 유지보수가 어려워집니다.

이러한 문제를 해결하기 위해 JSTL이 개발되었습니다. JSTL은 JSP 페이지에서 자주 사용되는 로직을 간결하게 작성할 수 있는 다양한 태그와 함수를 제공합니다.

 

JSTL을 사용하면 자주 사용되는 로직을 간결하게 작성할 수 있으며, 이로 인해 코드의 가독성이 향상되고 유지보수가 용이해집니다. 또한 JSTL은 JSP 페이지에서 Java 코드를 작성하지 않고도 웹 애플리케이션을 개발할 수 있도록 돕는 기능을 제공합니다.

 

JSTL 라이브러리 종류 

JSTL(JSP Standard Tag Library)은 JSP(JavaServer Pages)에서 자주 사용되는 로직을 간결하게 작성할 수 있도록 지원하는 라이브러리로, 다양한 종류의 태그를 제공합니다. JSTL의 종류는 다음과 같습니다.

1. 코어 태그(Core Tags)

조건문, 반복문, 변수 설정 등의 기본 기능을 제공하는 태그입니다. 대표적으로 "c:if", "c:forEach", "c:set" 등이 있습니다.


1) c:if: 조건문을 처리하는 태그로, 주어진 조건식이 참(true)일 경우에만 내부의 코드를 실행합니다.

<c:if test="${score >= 60}">
    <p>합격하셨습니다.</p>
</c:if>

2) c:forEach :  반복문을 처리하는 태그로, 주어진 컬렉션의 각 요소를 반복하여 내부의 코드를 실행합니다.

<c:forEach var="num" begin="1" end="5">
    <p>${num}</p>
</c:forEach>

3) c:set: c:set: 변수를 설정하는 태그로, 지정한 값을 변수에 할당합니다.

<c:set var="name" value="John" />


2. 포맷 태그(Formatting Tags)

날짜, 시간, 숫자 등의 형식을 지정하는 태그입니다. 대표적으로 "fmt:formatDate", "fmt:formatNumber" 등이 있습니다.
XML 태그(XML Tags): XML 문서를 처리하는 태그입니다. 대표적으로 "x:parse", "x:forEach" 등이 있습니다.

1) fmt:formatDate: 날짜를 지정된 형식으로 포맷팅하는 태그입니다.

<fmt:formatDate value="${now}" pattern="yyyy-MM-dd" />

2) fmt:formatNumber: 숫자를 지정된 형식으로 포맷팅하는 태그입니다.

<fmt:formatNumber value="${price}" type="currency" currencyCode="USD" />

함수 태그(Functions Tags): 문자열 처리, 수학 연산, 컬렉션 처리 등의 기능을 제공하는 함수를 호출하는 태그입니다. 대표적으로 "fn:length", "fn:substring" 등이 있습니다.


3. XML 태그(XML Tags):
1) x:parse: XML 문서를 파싱하여 자바 객체로 변환하는 태그입니다.

<x:parse var="book" xml="${bookXml}" />

2) x:forEach: XML 문서의 요소를 반복하여 내부의 코드를 실행하는 태그입니다.

<x:forEach select="$books/book" var="book">
    <p>${book.title}</p>
</x:forEach>

 

4. 함수 태그(Functions Tags)

1) fn:length : 문자열의 길이를 구하는 함수를 호출하는 태그입니다.

<%-- message가 null인 경우에는 0을 반환 --%>
<c:set var="length" value="${fn:length(message) ?? 0}" />

2) fn:substring: 문자열의 일부분을 추출하는 함수를 호출하는 태그입니다

<%-- message의 1번째부터 10번째까지의 문자열을 추출 --%>
<c:set var="substr" value="${fn:substring(message, 1, 10)}" />


5. SQL 태그(SQL Tags): 데이터베이스 연동을 지원하는 태그입니다. 대표적으로 "sql:setDataSource", "sql:update" 등이 있습니다.

1) sql:setDataSource: 데이터베이스 연결 정보를 설정하는 태그입니다.

<sql:setDataSource var="dataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/mydb" user="root" password="1234" />

2) sql:update: 데이터베이스를 업데이트하는 쿼리를 실행하는 태그입니다.

<sql:update dataSource="${dataSource}">
    INSERT INTO products (name, price) VALUES ('iPhone', 1000);
</sql:update>



이러한 JSTL 태그들은 각각의 기능에 맞게 사용되며, JSP 페이지에서 자주 사용되는 로직을 간결하게 작성할 수 있도록 도와줍니다.

'front-end' 카테고리의 다른 글

[bootstrap] 부트스트랩 사용법  (0) 2023.02.22
[JDBC] JDBC란?  (0) 2023.02.09
[Ajax] Ajax 비동기방식 개념  (0) 2023.02.08
[JSP] JSP의 개념  (0) 2023.02.08
[servlet] servlet 개념 알기, GET/POST, Session  (0) 2023.02.06

댓글