JSP공부
표준 태그 라이브러리 JSTL
NaZZU
2024. 10. 17. 00:51
표준 태그 라이브러리
- Jsp Standard Tag Library의 약자
- JSP에서 개발자가 추가할 수 있는 커스텀 태그를 모아놓은 표준
- <jsp:include> 와 같은 태그를 개발자가 추가할 수 있는 태그
- 역할
- 스크립틀릿 코드의 사용빈도 감소
- 더욱 간결하고 이해하기 쉬운 JSP 코드를 작성 가능
- 종류
라이브러리 | 주요 기능 | 접두어 | 관련 URI |
코어 | 변수 지원 흐름제어 URL 처리 |
c | http://java.sun.com/jsp/jstl/core |
XML | XML 코어 흐름 제어 XML 변환 |
x | http://java.sun.com/jsp/jstl/xml |
국제화 | 지역 메시지 형식 숫자 및 날짜 형식 |
fmt | http://java.sun.com/jsp/jstl/fmt |
데이터베이스 | SQL | sql | http://java.sun.com/jsp/jstl/sql |
함수 | 컬렉션 처리 String 처리 |
fn | http://java.sun.com/jsp/jstl/functions |
JSTL 코어 태그
변수 설정이나 if-else 와 같은 논리 처리에 사용되는 스크립트 코드를 대체하는 태그를 제공한다
taglib 디렉티브 추가
<%@ taglib prefix="c" uri="htp://java.sun.com/jsp/jstl/core" %>
기능 분류 | 태그 | 설 명 |
변수 지원 | set | JSP에서 사용할 변수를 설정한다 |
remove | 설정한 변수를 제거한다 | |
흐름 제어 | if | 조건에 따라 내부 토드를 수행한다 |
choose | 다중 조건을 처리할 때 사용한다 | |
forEach | 컬렉션이나 Map의 각 항목을 처리할 때 사용된다 | |
forTokens | 구분자로 분리된 각각의 토큰을 처리할 때 사용한다 | |
URL 처리 | import | URL을 사용하여 다른 자원의 결과를 삽입한다 |
redirect | 지정한 경로로 리다이렉트 한다 | |
url | URL을 재작성한다 | |
기타 태그 | catch | 익셉션을 처리할 때 사용 |
out | JspWriter에 내용을 출력한다 |
- 변수 지원 태그 - <c:set>, <c:remove>
- EL 변수의 값이나 EL 변수의 프로퍼티 값을 지정할 때 사용
- set
- <c:set var="변수명" value="값" [scope="영역"] />
- <c:set var="변수명" [scope="영역"] > 값 </c:set>
- <c:set target="대상" property="프로퍼티 이름" value="값" />
- <c:set target="대상" property="프로퍼티 이름"> 값 </c
- remove
- <c:remove var="변수명" [scope="영역"/>
- 주의 : 삭제할 변수의 scope를 지정해주지 않으면 동일한 이름으로 저장된 모든 영역(request, response, page, application)의 변수를 삭제한다.
- 흐름 제어 태그 - <c:if> <c:choose> <c:forEach> <c: forToken>
- if
- 자바 언어의 if 블록과 유사한 기능을 제공
- <c:if test="조건"> --- </c:if>
- choose / when / otherwise
- 자바의 switch 구문과 if-else 블록을 혼합한 형태
- 다수의 조건문을 하나의 블록에서 수행할 때 사용
- <c:choose>
<c:when test=“${member.level == ‘trial’}”>
. . .
</c:when>
<c:otherwise>
. . .
</c:otherwise>
</c:choose>
- forEach
- 배열, Collection 또는 Map에 저장되어 있는 값들을 순차적으로 처리할 때 사용
- 자바의 for, do-while 등을 대신해서 사용할 수 있다
- < c:forEach var=“변수” items=“아이템">
. . .
${변수 사용}
. . .
< /c:forEach>
- forToken
- 주어진 문자열을 구분자로 나누어 토큰으로 만듦
- < c:forTokens var=“토큰” items=“문자열“ delims=“구분자”>
${token}의 사용
< /c:forTokens>
- url 처리 태그 url - redirect
- URL 관련 처리를 위한 태그
- URL 생성 : <c:url>
- <c:url value="URL" [var="변수명" scope="영역">
<c:param name="이름" value="값"/>
</c:url> - 리다이렉트 처리 : <c:redirect>
- <c:redirect url="URL 변수/ 경로"/>
- <c:url value="URL" [var="변수명" scope="영역">
- out
- JspWriter에 대이터를 출력할 때 사용되는 태그
- <c:out value="값" [escapeXml="(true/false)"]
- escapeXml의 값이 true면 특정 문자가 변환되어 출력된다
- if
JSTL 국제화 태그
- 특정 지역에 따라 알맞은 메시지를 출력해야 할 떼 사용
- JSP 페이지에서 다양한 언어에 맞는 메시지 출력 기능을 제공
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt>
기능 분류 | 태그 | 설 명 |
로케일 지정 | setLocale | Locale을 지정한다 |
requestEncoding | 요청 파라미터의 캐릭터 인코딩을 지정한다 | |
메시지 처리 | bundle | 사용한 번들을 지정한다 |
message | 지역에 알맞은 메시지를 출력한다 | |
setBundle | 리소스 번들을 읽어와 특정 변수에 저장한다 | |
숫자 및 날짜 포맷팅 | formatNumber | 숫자를 포맷팅한다 |
formatDate | Date 객체를 포맷팅한다 | |
parseDate | 문자열로 표시된 날짜를 분석해서 Date 객체로 변환 | |
parseNumber | 문자열로 표시된 날짜를 분석해서 숫자로 변환 | |
setTimeZone | 시간대 정보를 특정 변수에 저장한다 | |
timeZone | 시간대를 지정한다 |
- <fmt:setLocale> : 국제화 태그들이 사용할 로케일을 지정
- <fmt :requestEncoding> : 요청 파라미터의 캐릭터 인코딩을 지정