▣ JSTL(JSP Standard TAG Library)의 사용
- 많이 사용되는 사용자 정의 태그를 모아서 JSTL이라는 규약이 만들어졌습니다.
- 스크립틀릿, 표현식을 사용하는 것보다 훨씬 간결한 문법 구조를 지원합니다.
- JSTL은 5가지의 태그를 지원합니다.
라이브러리 기능 접두어 관련 URL
-----------------------------------------------------------------------------------------------
Core 변수지원, 흐름 제어, 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 ★
1. 설치(JSTL을 사용하기 위한 환경)
- http://jakarta.apache.org/taglibs/doc/standard-doc/intro.html
. Standard Taglib nightly snapshot에서 다운합니다.
- 압축을 해제한 후 "F:\JAVA\jstl\jakarta-taglibs-standard-20050804\jakarta-taglibs\standard\lib"폴더안
에 있는'jstl.jar', 'standard.jar'파일을 "D:\tomcat-5.0.19\common\lib" 폴더로 복사합니다.
▩ Core Tag
기능 태그명 기능설명
---------------------------------------------------------------------------
변수 지원 set jsp에서 사용될 변수를 설정합니다.
remove 설정한 변수를 제거합니다.
---------------------------------------------------------------------------
흐름 제어 if 조건에 따라 내부 코드를 수행합니다.
choose 다중 조건을 처리할 때 사용됩니다.
forEach Collection의 각 항목을 처리할 때 사용합니다.
forTokens 구분자로 분리된 각각의 토큰을 처리할 때 사용합니다.
---------------------------------------------------------------------------
URL 처리 import URL을 사용하여 다른 자원의 결과를 삽입합니다.
redirect 지정한 경로로 이동합니다.
url URL을 재 작성합니다.
---------------------------------------------------------------------------
기타 태그 catch 예외 처리에 사용합니다.
out jspWriter에 내용을 알맞게 처리한 후 출력합니다.
---------------------------------------------------------------------------
▩ EL & JSTL의 사용 - Core Tag: 변수 지원 태그의 사용
1. 변수지원 태그, http://127.0.0.1:8080/jstl/setTag.jsp
<%@ page contentType = "text/html; charset=euc-kr" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:set var="num1" value="${20}" />
<c:set var="num2">
10.5
</c:set>
<c:set var="today" value="<%= new java.util.Date() %>" />
<html>
<head>
<title>set 태그와 remove 태그</title>
</head>
<body>
변수 num1 = ${num1} <br>
변수 num2 = ${num2} <br>
num1 + num2 = ${num1 + num2} <br>
오늘은 ${today} 입니다.
<c:remove var="num1" scope="page" />
<p>
삭제한 후의 num1 = ${num1} <br>
삭제한 후의 num1 + num2 = ${num1 + num2}
</body>
</html>
2. Map 객체의 사용, http://127.0.0.1:8080/jstl/setTag2.jsp
<%@ page contentType = "text/html; charset=euc-kr" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:set var="map" value="<%= new java.util.HashMap() %>" />
<html>
<head>
<title>set 태그와 remove 태그</title>
</head>
<body>
<c:set target="${map}" property="name" value="왕눈이" />
변수 map에 저장된 name 값: ${map.name}
</body>
</html>
▩ EL & JSTL의 사용 - Core Tag: 흐름 제어 태그의 사용
1. if 흐름제어 태그의 사용
- http://127.0.0.1:8080/jstl/ifTag.jsp
- http://127.0.0.1:8080/jstl/ifTag.jsp?name=tree
- http://127.0.0.1:8080/jstl/ifTag.jsp?name=tree&age=25
- 한글은 비교가 안됩니다.
<%@ page contentType = "text/html; charset=euc-kr" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head><title>if 태그</title></head>
<body>
<c:if test="true">
무조건 수행<br>
</c:if>
<c:if test="${param.name == 'tree'}">
name 파라미터의 값이 ${param.name} 입니다.<br>
</c:if>
<c:if test="${18 < param.age}">
당신의 나이는 18세 이상입니다.
</c:if>
</body>
</html>
2. choose Tag
- when tag는 조건이 true이면 실행합니다.
- http://127.0.0.1:8080/jstl/chooseTag.jsp
<%@ page contentType = "text/html; charset=euc-kr" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head><title>choose 태그</title></head>
<body>
<ul>
<c:choose>
<c:when test="${param.name == 'bk'}" >
<li> 당신의 이름은 ${param.name} 입니다.
</c:when>
<c:when test="${param.age > 18}" >
<li> 당신은 18세 이상입니다.
</c:when>
<c:otherwise>
<li> 당신은 'bk'가 아니고 18세 이상이 아닙니다.
</c:otherwise>
</c:choose>
</ul>
</body>
</html>
3. forEach 태그
- Collection, Map, 배열에 저장되어 있는 값에 순차적으로 접근시에 사용합니다.
- http://127.0.0.1:8080/jstl/forEachTag.jsp
<%@ page contentType = "text/html; charset=euc-kr" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
java.util.HashMap mapData = new java.util.HashMap();
mapData.put("name", "아로미");
mapData.put("today", new java.util.Date());
%>
<c:set var="intArray" value="<%= new int[] {1,2,3,4,5} %>" />
<c:set var="map" value="<%= mapData %>" />
<html>
<head><title>forEach 태그</title></head>
<body>
<h4>1부터 100까지 홀수의 합</h4>
<c:set var="sum" value="0" />
<c:forEach var="i" begin="1" end="100" step="2">
<c:set var="sum" value="${sum + i}" />
</c:forEach>
결과 = ${sum}
<h4>구구단: 4단</h4>
<ul>
<c:forEach var="i" begin="1" end="9">
<li>4 * ${i} = ${4 * i}
</c:forEach>
</ul>
<h4>int형 배열</h4>
<c:forEach var="i" items="${intArray}" begin="2" end="4">
[${i}]
</c:forEach>
<h4>Map</h4>
<c:forEach var="i" items="${map}">
${i.key} = ${i.value}<br>
</c:forEach>
</body>
</html>
4. forTokens Tag
- http://127.0.0.1:8080/jstl/forTokensTag.jsp
<%@ page contentType = "text/html; charset=euc-kr" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head><title>forTokens 태그</title></head>
<body>
콤마와 점을 구분자로 사용:<br>
<c:forTokens var="token"
items="빨강색,주황색.노란색.초록색,파랑색,남색.보라색"
delims=",.">
${token}
</c:forTokens>
</body>
</html>
'프로그래밍 > Java' 카테고리의 다른 글
JSTL (0) | 2009.02.18 |
---|---|
[이클립스] JVM 메모리 용량 세팅 (0) | 2009.02.11 |
StringTokenizer 와 String.split() (0) | 2009.02.11 |
JSTL fmt (0) | 2009.02.11 |
배열 정렬. (0) | 2009.02.11 |