포스트

JSTL

JSTL

JSTL

  • JSP Standard Tag Library
  • 모델2 방식의 웹 어플리케이션을 개발할 때 EL과 함께 주로 사용
  • EL과 마찬가지로 4가지 영역에 저장된 속성값을 사용 가능

JSTL 제공 태그 종류

종류기능접두어URI
Core 태그변수 선언, 조건문/반복문, URL처리cjakarta.tags.core
Formatting 태그숫자, 날짜, 시간 포맷 지정fmtjakarta.tags.fmt
XML 태그XML 파싱xjakarta.tags.xml
Function 태그컬렉션, 문자열 처리fnjakarta.tags.functions
SQL 태그데이터베이스 연결 및 쿼리 실행sqljakarta.tags.sql

Core 태그

태그명기능
setEL에서 사용할 변수를 설정
setAttribute() 메서드와 동일한 기능
remove설정한 변수를 제거
removeAttribute() 메서드와 동일한 기능
if단일 조건문을 주로 처리
else문이 없다는 단점
choose다중 조건을 처리할 때 사용
하위에 when-otherwise 태그 존재
forEach반복문을 처리할 때 사용
일반 for문과 향상된 for문 두 가지 형태로 사용 가능
forTokens구분자로 분리된 각각의 토큰을 처리할 때 사용
StringTokenizer 클래스와 동일한 기능
import외부 페이지를 삽입할 때 사용
redirect지정한 경로로 이동
sendRedirect() 메서드와 동일한 기능
url경로를 설정할 때 사용
out내용을 출력할 때 사용
catch예외 처리에 사용

<c:set>태그

  • EL에서 사용할 변수나 자바빈즈를 생성할 때 사용
1
2
3
4
5
6
7
8
9
10
<c:
set var = "변수명"
value="값"scope="영역"/>

<c:
set var = "변수명"
scope="영역">
value 속성에
들어갈 
</c:set>
속성명기능
var변수명을 설정
value변수에 할당할 값
scope변수를 생성할 영역에 지정, page가 기본값
target자바빈즈를 설정
property자바빈즈의 속성, 즉 멤버 변수의 값을 지정

자바빈즈나 컬렉션을 생성할 때는 target과 property속성을 사용

1
2
3
4
5
6
<c:
set var = "변수명"
value="저장할 객체 혹은 컬렉션"scope="영역"/>
<c:
set target = "var로 설정한 변수명"
property="객체의 속성명"value="속성값"/>

<c:remove>태그

1
2
3
<c:
remove var = "변수명"
scope="영역"/>
속성명기능
var삭제할 변수명을 설정
scope삭제할 변수의 영역을 지정
지정하지 않으면 모든 영역의 변수가 삭제

<c:if> 태그

1
2
3
4
5
<c:if test="조건"var="변수명"scope="영역">
조건이 true일
 출력할
문장
        </c:if>
속성명기능
testif문에서 사용할 조건을 지정
var조건의 결과를 저장할 변수명을 지정
scope변수가 저장될 영역을 지정

<c:forEach> 태그

1
2
3
4
5
6
7
8
9
// 일반 for문 형태
<c:
forEach var = "변수명"
begin="시작값"end="마지막 값"step="증가값"/>

// 향상된 for문 형태
<c:
forEach var = "변수명"
items="컬렉션 혹은 배열"/>
속성명기능
var변수명을 지정
items반복을 위한 객체를 지정
배열, 컬렉션 등을 지정할 수 있음
begin시작값을 지정
end종료값을 지정
step증가할 값을 지정
varStatus루프의 현재 상태를 알려주는 변수의 이름을 지정

varStatus 속성을 통해 얻을 수 있는 정보

속성명일반 for문향상된 for문
currentvar에 지정한 현재 루프의 변숫값 반환현재 루프의 실제 요소를 반환
indexvar에 지정한 현재 루프의 변숫값 반환현재 루프의 인덱스를 표시(0-마지막)
count실제 반복 횟수(1-마지막)좌 동
first루프의 처음일 때 true 반환좌 동
last루프의 마지막일 때 true 반환좌 동

국제화(Formatting) 태그

  • 국가별로 다양한 언어, 날짜, 시간, 숫자 형식을 설정할 때 사용
1
<%@ <%@taglib prefix="fmt"uri="jakarta.tags.fmt"%> 
분류태그명기능
숫자 포맷formatNumber숫자 포맷을 설정
 parseNumber문자열을 숫자 포맷으로 변환
날짜 포맷formatDate날짜나 시간의 포맷을 설정
 parseDate문자열을 날짜 포맷으로 변환
타임존 설정setTimeZone시간대 설정 정보를 변수에 저장
 timeZone시간대를 설정
로케일 설정setLocale통화 기호나 시간대를 설정한 지역에 맞게 표시
 requestEncoding요청 매개변수의 문자셋을 설정

숫자 포맷팅 및파싱

1
2
3
4
<fmt:
formatNumber value = "출력할 숫자"
type="문자열 양식 패턴"var="변수 설정"
groupingUsed="구분 기호 사용 여부"pattern="숫자 패턴"scope="영역"/>
속성명기능
value출력할 숫자를 설정
type출력 양식을 설정 –> percent, currency, number 등을 지원
var출력할 숫자를 변수에 저장. 해당 속성 사용 시 즉시 출력되지 않고, 원하는 위치에 출력 가능
groupingUsed세 자리마다 콤마를 출력할지 여부 결정. 기본값 true
pattern출력할 숫자의 양식을 패턴으로 지정
scope변수를 저장할 영역을 지정
1
2
3
4
<fmt:
parseNumber value = "파싱할 문자열"
type="출력 양식"var="변수 설정"
integerOnly="정수만 파싱"pattern="패턴"scope="영역"/>
속성명기능
value변환할 문자열을 설정
type문자열의 타입을 설정. 기본값 number
var출력할 값을 변수에 저장
pattern문자열의 양식을 패턴으로 지정
scope변수를 저장할 영역을 지정
integerOnly정수 부분만 표시할지 여부를 결정. 기본값 false

날짜 포맷 및 타임존

1
2
3
4
<fmt:
formatDate value = "출력할 날짜"
type="출력 양식"var="변수 설정"
dateStyle="날짜 스타일"timeStyle="시간 스타일"pattern="날짜 패턴"scope="영역"/>
속성명기능
value출력할 값을 설정
type출력 시 date, time, both 세가지 중 선택
var출력할 숫자를 변수에 저장
dateStyle날짜 스타일 default, short, medium, long, full 중 선택
timeStyle시간 스타일 default, short, medium, long, full 중 선택
pattern출력할 날짜 및 시간의 양식을 패턴으로 직접 지정
scope변수를 저장할 영역을 지정
이 기사는 저작권자의 CC BY-NC 4.0 라이센스를 따릅니다.