제 13 장 JSTL 2008 2학기 인터넷비즈니스과 강 환수 교수
액션태그와 커스텀 태그 액션태그 커스텀 태그(Custom Tag) 태그 <jsp:useBean …>, <jsp:include …> 이미 정해진 액션 태그 커스텀 태그(Custom Tag) JSP에서는 프로그래머가 직접 필요한 태그를 만들어 사용 XML 태그 형식 시작 태그와 종료 태그가 반드시 존재
Internationalization JSTL 자바 표준 태그 라이브러리 JSTL: Java Standard Tag Library 자바에서 커스텀 태그 기능을 이용하여 활용 빈도가 높은 태그를 개발 분류 세부 영역 접두어 (prefix) URI Core 변수 지원 c http://java.sun.com/jsp/jstl/core 제어 흐름 URL 관리 출력, 예외처리 XML 코아 x http://java.sun.com/jsp/jstl/xml 흐름 제어 변환 Internationalization 지역화(Locale) fmt http://java.sun.com/jsp/jstl/fmt 메시지 포맷 수와 날짜 포맷 Database SQL sql http://java.sun.com/jsp/jstl/sql Functions 집합체 길이 fn http://java.sun.com/jsp/jstl/functions 문자열 처리
JSTL 라이브러리 설치 JSTL을 위한 2 개의 파일 [jstl.jar]와 [standard.jar]
JSTL 참조 홈페이지 http://java.sun.com/products/jsp/jstl/1.1/docs/tlddocs/index.html
taglib 지시자 지시자 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 예제 <%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=EUC-KR"> <title>JSTL 첫 예제</title> </head> <body> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <c:out value="Hello JSTL!!!!" /> </body> </html>
코어 태그 라이브러리 분류 태그 기능 변수 지원 remove 이미 설정한 변수를 삭제 set 범위에서 사용될 변수를 지정 제어 흐름 choose 태그 <when>과 <otherwise>로 구성되어 있는 여러 개의 조건 중에 하나만 선정하여 처리 when <choose> 태그의 서브태그로 조건이 true이면 몸체를 실행 otherwise <choose> 태그의 서브태그로 이전에 있는 태그 <when>에서 조건이 모두 false이면 태그 <otherwise> 몸체를 실행 forEach 다양한 콜렉션 유형에서 반복을 처리 forTokens 문자열을 구분자(delimeters)로 구분하여 토큰으로 나누며 반복 실행 if 조건이 true이면 몸체를 실행 URL 관리 import 다른 페이지를 현재 위치, 또는 변수 또는 읽기객체에 저장 param 태그 <import>, <redirect>, <url>의 서브태그로, 매개변수 전송 처리 redirect 새로운 URL로 이동 처리 url 질의 매개변수를 이용하여 URL을 생성 예외처리, 출력 catch 예외 처리 out 출력 처리
set, remove, if, choose 변수 지원 태그 set, remove 제어흐름 태그 <c:set var="변수이름" value="저장할 값" scope="4개의중의하나" /> <c:remove var="삭제할변수이름" scope="삭제할변수의scope" /> 제어흐름 태그 <c:if test="${today.hours > 17 }" var="bool"> body </c:if> <c:choose> <c:when test="${today.hours < 12 }" > Body1 </c:when> <c:when test="${today.hours < 18 }" > Body2 <c:otherwise> Body3 </c:otherwise> </c:choose>
<c:forEach …> 태그 forEach 배열, Collection, Map에 저장된 원소를 순차적으로 처리하거나 지정하는 횟수만큼 반복을 처리하는 태그 <c:forEach var="한원소를저장하는변수" items="배열또는Map등의집합체" > body </c:forEach> <c:forEach var="i" begin="3" end="100" step="3"> body </c:forEach> <c:set var="score" value="<%= new int[] {95, 88, 77, 45, 99} %>" /> <c:forEach var="point" items="${score}" > \${point} = ${point} <br> <c:set var="sum" value="${sum + point}" /> </c:forEach>
<c:forTokens …> 속성 delims에 지정된 구분자(delimeter)를 사용하여 속성 items에 지정된 배열을 토큰으로 반복적으로 나누는 작업을 처리하는 태그 태그 forEach에서 속성 items와 delims는 반드시 있어야 함 태그 forTokens는 자바 클래스 java.util.StringTokenizer와 같은 기능을 수행 <c:forTokens var="구분자로잘라진token이저장" delims="각문자가구분자로이용" items="토큰으로나눌문자열"> body ${var} </c:forTokens> <c:set var="str" value="JSTL은 표준태그로서 코어, XML, 국제화, SQL, 함수 관련 태그로 구성된다."/> <c:forTokens var="token" delims=" ,.은로서된다" items="${str}"> ${token} </c:forTokens>
출력과 예외처리 태그 <c:catch …> <c:out …> 몸체 부분에 예외가 발생할 가능성이 있는 코드를 배치 예외가 발생하면 지정한 속성 var 변수에 예외 메시지를 저장하는 태그 <c:out …> 속성 value에 지정된 문자열 또는 변수의 내용을 출력하는 태그 <c:catch var="errMessage"> 예외가 발생할 수 있는 코드 </c:catch> <c:out value="${param.name}"> 이 부분은 value에 값이 null일 때 출력되는 기본 출력 값입니다. </c:out>
SQL 태그 라이브러리 분류 태그 기능 리소스 지정 setDataSource <sql:setDataSource …> 데이터소스 지정 질의 query <sql:query …> 조회 관련 SQL 문장 실행 dateParam <sql:dateParam …> 날짜 형태로 SQL의 매개변수 값 지정 param <sql:param …> SQL의 매개변수 값 지정 Update <sql:update …> 수정 관련 SQL 문장 실행 transaction <sql:transaction …> 트랜잭션 처리
Thank You ! www.dongyang.ac.kr