■ JSTL이란
JSTL란 자바서버 페이지 표준 태그 라이브러리(JavaServer Pages Standard Tag Library)이고 줄여서 JSTL이라 부른다. 즉 JSTL + EL의 조합을 말한다.
▶ 자바코드를 html태그형식으로 간편하게 사용하기 위해 나온 라이브러리
HTML 코드 내에 java 코드인 스크립틀릿 <%= student %>를 ${student}로, <%=if %>문을 <c:if>, <%=for%>문을 <c:forEach>로 대체하여 사용한다.
JSP에서 java코드가 들어갈때마다 매번 <% ~~ %> 이 태그를 넣어 사용하면 가독성도 굉장히 떨어지고 사용하기가 불편해진다 그래서 나온것이 JSTL라이브러리이다.
■ JSTL 사용방법
JSTL을 사용하기 위해서는 JSTL jar 파일과 JSTL 구현체(implementation)를 설치해야 한다.
https://repo1.maven.org/maven2/jstl/jstl/1.2/
설치한 JSTL jar 파일은 tomcat 폴더 > lib 폴더 내부로 이동시킨다.
* Tomcat 도 설치 되어있어야 한다.
https://tomcat.apache.org/download-90.cgi
Index of /maven2/jstl/jstl/1.2/
repo1.maven.org
Index of /maven2/jstl/jstl/1.2/
repo1.maven.org
■ taglib 선언
JSTL은 라이브러리이기 때문에 사용하기전에 core를 header에 추가해주어야 한다.
uri : 태그 라이브러리의 네임 스페이스 URI 식별자
prefix : JSTL 태그를 사용할때 태그 이름 앞에 붙일 접두사
태그 라이브러리 | 선언문 |
Core | <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> |
XML | <%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %> |
I18N | <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> |
Database | <%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %> |
Functions | <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> |
// header에 추가
<% @taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
//body 에 넣어 사용하기
<c:if test=""></c:if>
<c:forEach items=""></c:forEach>
-----------------------------------------------------------------------------------------------------------------------------------------------------
[예제]
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head> <meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<!--JavaServer Pages Standard Tag Library-->
<!--jstl 문법: 태그 형식으로 코딩하는 방법(디자이너에게 직관적임)-->
<c:forEach var ="i" begin = "1" end = "10"> ${i}
</c:forEach>
</body>
</html>
■ JSTL core의 태그들
태그명 | 설명 |
<c:set> | 변수명에 값을 할당 |
<c:out> | 값을 출력 |
<c:if> | 조건식에 해당하는 블럭과 사용될 scope설정 |
<c:choose> | 다른 언어의 switch와 비슷 |
<c:when> | switch문의 case에 해당 |
<c:otherwise> | switch문의 default에 해당 |
<c:forEach> | 다른언어의 loop문 items 속성에 배열을 할당할 수 있음 |
태그 라이브러리 | 기능 | 태그 - 부모태그(자식태그) |
Core(기본) | 변수 | remove, set |
흐름 제어 | choose(when, otherwise) forEach forTokens if |
|
URL 관리 | import(param) redirect(param) url(param) |
|
기타 | catch, out | |
XML | 기본 | out, parse, set |
흐름 제어 | choose(when, otherwise) forEach if |
|
변환 | transform(param) | |
I18N(국제화) | 로케일 | setLocale, requestEncoding |
메시지 포맷 | bundle message(param) setBundle |
|
Database | 데이터 소스 설정 | setDataSource |
SQL | query(dateParam, param) transaction update(dateParam, param) |
|
Functions(기타 함수) | 집합의 원소 개수 | length |
문자열 처리 | toUpperCase toLowerCase substring substringAfter substringBefore trim replace indexOf startsWith endsWith contains containsIgnoreCase split join escapeXml |
'JSP' 카테고리의 다른 글
JSP 웹소켓(WebSocket) 만들고 활용하기 (0) | 2023.04.15 |
---|---|
MVC 패턴 이란? (0) | 2023.04.14 |
JSP Scope의 4가지 개념과 쓰임 (0) | 2023.04.04 |
JSP 내부객체 (0) | 2023.04.04 |
JSP(Java Server Pages) 란 (0) | 2023.04.03 |