Presentation is loading. Please wait.

Presentation is loading. Please wait.

JSTL JSTL의 개념을 이해한다 JSTL의 분류 및 활용 범위를 익힌다 코어 태그 라이브러리의 활용 방법을 배운다

Similar presentations


Presentation on theme: "JSTL JSTL의 개념을 이해한다 JSTL의 분류 및 활용 범위를 익힌다 코어 태그 라이브러리의 활용 방법을 배운다"— Presentation transcript:

1 JSTL JSTL의 개념을 이해한다 JSTL의 분류 및 활용 범위를 익힌다 코어 태그 라이브러리의 활용 방법을 배운다
한빛미디어(주)

2 JSTL 이란 Section 01 JSTL설치 JSTL은 1.2 스펙 까지 나와 있으면 Java EE5에 포함되어 있다
라이브러리 설치 부록CD\개발관련프로그램\라이브러리모음 폴더에서 jakarta-taglibs-standard1.1.2.zip 파일의 압축을 해제 jstl.jar, standard.jar 파일을 이클립스 jspbook 프로젝트내 WEB-INF\lib 폴더에복사 tld 파일 복사 태그라이브러리 정의 파일인 tld 파일을 WEB-INF\tld 폴더로 복사 교재에서는 코어 라이브러리만 사용하므로 c.tld 파일만 복사해도 됨 리스너 클래스 등록(JSTL 실습을 위해 필요) 부록CD\소스코드\jspbook\src\jspbook\ch11\ 폴더에서 .java 파일을 jspbook 프로젝트의 src 폴더로 복사 web.xml 파일에 다음 항목 추가 <listener> <listener-class>jspbook.ch11.InitialMember</listener-class> </listener>

3 JSTL 이란 Section 01 JSTL설치 설치파일 및 리스너 설정 확인

4 JSTL 이란 Section 01 JSTL개요 일반사항 JSTL 구성요소
JCP(Java Community Process, 자바표준화 단체) 에서 정한 표준 JSP 2.0 에 포함. 일반적으로 필요한 기능의 태그라이브러리를 미리 구현함. JSTL 구성요소 CORE : 공통 필수 기능 XML : XML문서 처리 관련 기능 I18N : 국제화 지원 관련 기능 SQL : JDBC를 이용한 DB처리 기능

5 JSTL 이란 Section 01 JSTL 라이브러리별 tablib URL과 Prefix sql
페이지 지시어에서 사용법 taglib prefix="c" uri=" %> sql SQL fmt I18N(국제화) x XML c CORE prefix URI Library

6 코어 라이브러리 Section 02 JSTL 코어 라이브러리 개요
수식, 흐름제어, URL을 통한 자원 접근등 가장 일반적으로 필요한 기능으로 구성 CORE 태그는 반드시 알아두어야 함 CORE 이외의 다른 라이브러리는 JSTL 이외에도 많이 개발 되어 있으며 경우에 따라서는 직접 커스텀 태그로 구현하는 것이 좋을수도 있음 import param redirect param url URL Management choose  when  otherwise forEach forTokens if Flow Control c catch out remove set Expression Language Support 접두어 태그 기능

7 코어 라이브러리 Section 02 JSTL 수식 언어 EL(Expression Language)지원.
간단한 연산식 사용이 가능 산술 연산자 곱하기 * % or mod 빼기 - 나누기 / or div 더하기 + 기능 연산자

8 코어 라이브러리 Section 02 General Purpose Actions <c:out> 태그
간단한 출력에 사용 하나 JSP2.0 표현언어가 더 편리함 문법 1. 태그 바디 없이 사용하는 경우 <c:out value="value" [escapeXml="{true|false}"] [default="defaultValue"] /> 2. 태그 바디가 있는 경우 <c:out value="value" [escapeXml="{true|false}"]> default value (value에 내용이 없을 때 출력될 기본 값) </c:out> 속성 필수 기본 값 설명 value Y 없음 출력될 내용 or 표현식 default N 태그 바디에 있는 내용 value 값에 내용이 없는 경우 출력할 내용으로, 태그 바디 혹은 속성 값 형태로 올 수 있다. excapeXml true 출력될 내용에 <, >, &, ', " 등의 문자를 일반 문자로 변환할 것인지 결정한다. 예를 들어 출력될 내용에 HTML 태그가 포함되어 있다면 이 값을 false로 해야 태그가 반영된 내용이 화면에 보인다. 만일 true로 된 경우에는 태그가 그대로 화면에 보이게 된다.

9 코어 라이브러리 Section 02 General Purpose Actions <c:set> 태그
EL 변수에 값을 설정 및 객체의 멤버변수값 설정 문법 1. 해당 범위에 속성 값을 추가하는 경우(바디가 올 수도 있다) <c:set value="value" var="varName" [scope="{page|request|session|application}"]/> 2. 특정 target 객체에 새로운 속성 값을 설정하는 경우(바디가 올 수도 있다) <c:set value="value" target="target" property="propertyName"/> 속성 필수 기본 값 설명 value N 없음 저장할 변수 값 target 값이 저장될 객체명 property target 객체의 멤버 변수명 var 값이 저장될 변수명 scope page 값이 저장될 범위(page, session, request, application)

10 코어 라이브러리 Section 02 General Purpose Actions <c:remove> 태그
해당 scope 의 변수(객체) 삭제 문법 <c:catch> 태그 바디에서 실행되는 코드의 예외를 잡아냄 <c:remove var="varName" [scope="{page|request|session|application}"]/> 속성 필수 기본 값 설명 var Y 없음 삭제할 변수명 scope N 모든 범위 삭제할 범위 <c:catch [var="varName"]> nested actions </c:catch> 속성 필수 기본 값 설명 var Y 없음 에러 메시지를 저장할 변수명

11 코어 라이브러리 Section 02 Conditional Actions <c:if> 태그
조건이 맞는 경우 태그 바디부분 처리. if 와 유사하지만 else 는 지원하지 않음. 문법 1. 바디 내용이 없는 경우 <c:if test="testCondition" var="varName" scope="{page|request|session|application}"]/> 2. 바디 내용이 있는 경우 <c:if test="testCondition" [var="varName"] [scope="{page|request|session|application}"]> body content </c:if> 속성 필수 기본 값 설명 test Y 없음 검사할 조건 var N test 조건의 결과를 저장할 변수(결과는 true 혹은 false) scope page 변수가 저장될 범위

12 코어 라이브러리 Section 02 Conditional Actions
<c:choose>, <c:when>, <c:otherwise> 태그 switch 문과 유사한 기능. 하나의 choose 태그에는 여러 개의 when 태그가 존재. 문법 <c:choose> body content (<when> and <otherwise> subtags) <c:when test="testCondition"> body content </c:when> <c:otherwise> conditional block </c:otherwise> </c:choose> 속성 필수 기본 값 설명 test Y 없음 검사할 조건

13 코어 라이브러리 Section 02 Iterator Actions <c:forEach>태그
자바의 for 문과 유사하며 가장 유용한 JSTL 태그중 하나임 문법 1. 컬렉션 객체의 크기만큼 반복 <c:forEach[var="varName"] items="collection" [varStatus="varStatusName"] [begin="begin"] [end="end"] [step="step"]> body content </c:forEach> 2. 지정된 회수 반복 <c:forEach [var="varName"] [varStatus="varStatusName"] begin="begin" end="end" [step="step"]> 속성 필수 기본 값 설명 items N 없음 반복을 위한 데이터를 가진 아이템의 컬렉션 begin 반복 시작 번호 end 컬렉션의 마지막 값 반복 끝 번호 step 1 반복의 증가분 var 현재 아이템을 가지고 있는 변수 varStatus 반복 상태 값을 가지고 있는 변수

14 코어 라이브러리 Section 02 Iterator Actions <c:forTokens>태그
자바의 StringTokenizer 클래스 기능을 제공함 문법 <c:forTokens items="stringOfTokens" delims="delimiters" [var="varName"] [varStatus="varStatusName"] [begin="begin"] [end="end"] [step="step"]> body content </c:forTokens> 속성 필수 기본 값 설명 items N 없음 반복을 위한 데이터를 가진 아이템의 컬렉션 delims Y 구분자(Delimeter)로 사용할 문자 begin 반복 시작 번호 end 컬렉션의 마지막 값 반복 끝 번호 step 1 반복의 증가분 var 현재 아이템을 가지고 있는 변수 varStatus 반복 상태 값을 가지고 있는 변수

15 코어 라이브러리 Section 02 URL Related Actions <c:import>태그
특정 URL 페이지를 현재 페이지에 포함, <jsp:include> 액션과 유사함 문법 1. 포함 하고자 하는 자원을 문자열 형태로 포함 하는 경우 <c:import url="url" [context="context"] [var="varName"] [scope="{page|request|session|application}"] [charEncoding="charEncoding"]> optional body content for <c:param> subtags </c:import> 2. 포함 하고자 하는 자원을 Reader 객체로 포함하는 경우 <c:import url="url" [context="context"] varReader="varReaderName" [charEncoding="charEncoding"]> body content where varReader is consumed by another action 속성 필수 기본 값 설명 url Y 없음 현재 페이지 내에 포함시킬 URL context N Current application 현재 웹 애플리케이션 컨텍스트 이름 charEncoding ISO 현재 페이지 내에 포함시킬 페이지 캐릭터셋 지정 var Print to page 포함할 페이지의 내용을 가지는 변수명 scope page var의 범위 varReader 자원 내용을 읽기 위한 java.io.Reader 변수

16 코어 라이브러리 Section 02 URL Related Actions <c:url>태그
URL Rewriting 방식으로 URL 정보를 다룬다 문법 1. 바디가 없는 경우 <c:url value="value" [context="context"] [var="varName"] [scope="{page|request|session|application}"]/> 2. 바디가 있는 경우 <c:url value="value" [context="context"] [var="varName"] [scope="{page|request|session|application}"]> <c:param> subtags </c:url> 속성 필수 기본 값 설명 value Y 없음 기본 URL context N Current application 현재 웹 애플리케이션의 컨텍스트 이름 var Print to page 포함할 페이지의 내용을 가지는 변수명 scope page var의 범위

17 코어 라이브러리 Section 02 URL Related Actions <c:redirect>태그
response.sendRedirect() 나 <jsp:forward> 액션 대신 사용할 수 있다 문법 1. 바디가 없는 경우 <c:redirect url="value" [context="context"]/> 2. 바디가 있는 경우 <c:param> subtags </c:redirect> 속성 필수 기본 값 설명 value Y 없음 기본 URL context N Current application 현재 웹 애플리케이션의 컨텍스트 이름

18 코어 라이브러리 Section 02 URL Related Actions <c:param>태그
import, url, redirect ㅌ그에서 파라미터 값을 설정 할 때 사용 문법 1. 바디가 없는 경우 <c:param name="name" value="value"/> 2. 바디 내용을 속성 값으로 사용하는 경우 <c:param name="name"> parameter value </c:param> 속성 필수 기본 값 설명 url Y 없음 현재 페이지 내에 포함시킬 URL context N Current application 현재 웹 애플리케이션 컨텍스트 이름

19 JSTL 예제 교재 : 430 ~ 451 페이지 예제 개요 JSTL 코어라이브러리 태그 예제 실습
각각의 태그 사용법과 속성에 따른 동작 확인

20 JSTL 버전 표현언어 교재 : 452 ~ 454 페이지 예제 개요
[예제 10-2] ProductList.jsp 의 일부분 수정 후 결과 확인


Download ppt "JSTL JSTL의 개념을 이해한다 JSTL의 분류 및 활용 범위를 익힌다 코어 태그 라이브러리의 활용 방법을 배운다"

Similar presentations


Ads by Google