14
제 14 제 제제제 제제 2008 2 학학 학학학학학학학학 학 학학 학학

제 14 장 커스텀 태그

  • Upload
    cardea

  • View
    60

  • Download
    0

Embed Size (px)

DESCRIPTION

제 14 장 커스텀 태그. 2008 2 학기 인터넷비즈니스과 강 환수 교수. 커스텀 태그. 정의 반복적으로 사용되는 조건 , 반복 등의 제어흐름과 다양한 태그의 표현 부분을 하나의 새로운 태그로 정의하여 사용할 수 있는 XML 유형의 사용자 정의 태그. 커스텀 태그 생성. 커스텀 태그 만드는 방법. JSP 2.0 커스텀 태그 개요. 커스텀 태그 작성 절차 클래스 SimpleTagSupport. 문자열 출력 커스텀 태그 작성 절차. - PowerPoint PPT Presentation

Citation preview

Page 1: 제  14  장 커스텀 태그

제 14 장

커스텀 태그

2008 2 학기

인터넷비즈니스과 강 환수 교수

Page 2: 제  14  장 커스텀 태그

커스텀 태그

정의 반복적으로 사용되는 조건 , 반복 등의 제어흐름과 다양한 태그의 표현 부분을 하나의 새로운 태그로 정의하여

사용할 수 있는 XML 유형의 사용자 정의 태그

2

Page 3: 제  14  장 커스텀 태그

커스텀 태그 생성

커스텀 태그 만드는 방법

3

버전 이름 특징

JSP 1.2JSP 1.2

태그 처리기자바 프로그래머에게 적합하고 , 상대적으로 다소 복잡하며 ,

JSP 2.0 을 사용할 수 없는 경우 사용

JSP 2.0

JSP 2.0태그 처리기

자바 프로그래머에게 적합하며 , JSP 1.2 태그 처리기에 비해 한결 간편해짐

태그 파일 JSP 프로그램과 유사하며 표현언어와 JSTL 에 익숙한 프로그래머에게 적합

이름 구현 인터페이스 또는상속 클래스

구현 파일 구현 방법

JSP 1.2태그 처리기

javax.servlet.jsp.tagext.Tagjavax.servlet.jsp.tagext.TagSupport

자바 파일 Tag 또는 TagSupport 를 상속받은 자바 클래스 구현

JSP 2.0태그 처리기

javax.servlet.jsp.tagext.SimpleTagjavax.servlet.jsp.tagext.SimpleTagSupport

자바 파일SimpleTag 또는

SimpleTagSupport 를 상속받은 자바 클래스 구현

태그 파일 확장자가 tag 인 태그 파일 태그 파일 JSP 프로그램과 같은 태그 파일 구현

Page 4: 제  14  장 커스텀 태그

JSP 2.0 커스텀 태그 개요

커스텀 태그 작성 절차

클래스 SimpleTagSupport

4

순서 이름 장소 파일

확장자 내용

1 태그 처리기 (Tag Handler) [Resource: src] *.java태그를 처리하는 자바 파일로 클래스

SimpleTagSupport 를 상속 ( 확장 ) 하여 작성

2태그 라이브러리 기술자

(TLD)[WEB-INF/tld] *.tld

1 에서 만든 태그를 JSP 페이지에서 사용할 수 있도록 태그 이름을 등록하는 절차

3 태그 활용 JSP 프로그램 [WebContent] *.jsp2 에서 등록한 태그이름을

taglib 지시자를 사용하여 이용

반환 유형 메소드 설명

void doTag()태그가 수행해야 할 일을 처리하는 메소드로 ,

태그 처리 클래스에서 오버라이딩 (overriding) 해서 구현

JspFragment getJspBody() 태그의 몸체 부분을 반환

JspContext getJspContext()페이지 context 를 반환하며 , 주로 getJspContext.getOut()

을 통해 출력에 사용할 JspWriter 객체를 얻음

Page 5: 제  14  장 커스텀 태그

문자열 출력 커스텀 태그 작성 절차

<myfirsttag:hello /> 태그 hello 는 몸체는 없으며

문자열 “ Hello Custom Tag!!!”를 출력

필요 파일

5

순서 이름 장소 파일 이름1 태그 클래스 작성 [Java Resources: src] HelloCustomTag.java

2 TLD 작성 [WEB-INF/tld] HelloCustomTag.tld

3 태그 활용 JSP 작성 [WebContent] HelloCustomTag.jsp

Page 6: 제  14  장 커스텀 태그

커스텀 태그를 위한 자바 파일 작성

HelloCustomTag.java

6

Page 7: 제  14  장 커스텀 태그

TLD 파일과 JSP 파일 작성

TLD 파일JSP 파일

7

<%@ 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> 커스텀 태그 </title></head><body> <%@ taglib uri="/WEB-INF/tld/HelloCustomTag.tld" prefix="myfirsttag" %>  

<H2> 첫 커스텀 태그 예제 </H2><center><HR><myfirsttag:hello /></center>

 </body></html>

Page 8: 제  14  장 커스텀 태그

속성이 있는 커스텀 태그 만들기

테이블 출력 커스텀 태그 작성 절차

8

순서 이름 장소 파일 이름 비고

1 태그 처리기 [Java Resources: src] SelectStudentTag.java 속성에 대한 setter getter

2 TLD [WEB-INF/tld] SelectStudentTag.tld 속성 처리

3 태그 활용 JSP 프로그램 [WebContent] SelectStudentTag.jsp

Page 9: 제  14  장 커스텀 태그

태그 파일 개요

태그 파일의 장점 자바에 익숙하지 않은 비개발자도 재사용이 가능한 커스텀

태그를 작성 프로그래머도 더 쉽게 작업 HTML 코드와 같은 표현 부분이 많은 모듈을 태그로 만든다면

태그 처리기 방식보다 적합

태그 파일로 커스텀 태그 작성 절차

9

순서 이름 장소 파일 확장자 설명

1 태그 파일 (Tag File) [WEB-INF/tags] *.tag태그를 처리하는 태그 파일로 JSP 파일과

비슷해 작성이 쉽고 , 간단함

2 태그 활용 JSP 프로그램 [WebContent] *.jsp위에서 만든 태그 파일 이름을 태그로

사용하며 , taglib 지시자를 사용하여 이용

Page 10: 제  14  장 커스텀 태그

문자열 출력 커스텀 태그 작성 절차

<mytag:hello /> 태그 hello 는 몸체는 없으며 문자열 “ Hello Custom Tag using

Tag File !!!” 를 출력하는 태그

10

순서 이름 장소 파일 이름

1 태그 파일 [WEB-INF/tags] hello.tag

2 태그 활용 JSP 프로그램 [WebContent] HelloCustomTagFile.jsp

Page 11: 제  14  장 커스텀 태그

태그 파일로 만드는 구구단 커스텀 태그

구구단 커스텀 태그 작성 절차

11

순서 이름 장소 파일 이름

1 태그 파일 [WEB-INF/tags] multiplication.tag

2 태그 활용 JSP 프로그램 [WebContent] multiplicationtable.jsp

Page 12: 제  14  장 커스텀 태그

Multiplication.tag

12

<%@ tag body-content="scriptless" pageEncoding="euc-kr" description=" 구구단 (multiplication table) 출력태그 "%>

<%@ attribute name="begin" %><%@ attribute name="end" %><%@ attribute name="bgcolor" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <c:if test="${empty(begin)}" var="bool">

<c:set var="begin" value="2" /></c:if>

<c:if test="${empty(end)}" var="bool"><c:set var="end" value="9" />

</c:if>

<c:if test="${empty(begin)}" var="bool"><c:set var="bgcolor" value="white" />

</c:if> <center><H2><jsp:doBody /></H2>

<table width=100% border=1 cellpadding=1 bgcolor="${bgcolor}" ><c:forEach var="i" begin="${begin}" end="${end}" >

<tr align="center" ><c:forEach var="j" begin="1" end="9" >

<td>${i} * ${j} = ${i * j}</td></c:forEach>

</tr></c:forEach></table>

</center><p><hr>

Page 13: 제  14  장 커스텀 태그

JSP 프로그램과 결과

13

<%@ 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> 커스텀 태그 </title></head><body> <h2> 태그 파일을 이용한 커스텀 태그 : multiplication </h2><hr> 

<%@ taglib tagdir="/WEB-INF/tags" prefix="mytag" %>

<mytag:multiplication>구구단 (2 단에서 9 단까지 )</mytag:multiplication>

 <mytag:multiplication end="5" bgcolor="linen">구구단 (2 단에서 5 단까지 )</mytag:multiplication>

 <mytag:multiplication begin="3" end="7" bgcolor="yellow">구구단 (3 단에서 7 단까지 )</mytag:multiplication>

 </body></html>

Page 14: 제  14  장 커스텀 태그

www.dongyang.ac.kr