반응형

▣ 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

+ Recent posts