강좌
클라우드/리눅스에 관한 강좌입니다.
프로그램 분류

jsp tag library기초강좌

작성자 정보

  • 웹관리자 작성
  • 작성일

컨텐츠 정보

본문

icon01.gif title03.gif
JSP Tag Library 란 custom tag 를 만들어서 사용하는 JSP 의 고급기술이라고 할 수 있는 것 중의 하나입니다. Bean 보다 진일보된 개념으로 MVC(Model View Control) 을 완벽하게 구현해줍니다.

<% %> 를 사용하지 않고도 동적인 표현을 가능하게 하므로 소스코드에 대해서 디자이너가 보다 쉽게 접근할 수 있습니다. (^^ 아직 저도 실무에 적용해보진 않았습니다.)

아직 저도 실력이 미천한 관계로, 책보고 공부한 것을 정리 겸 해서 썰을 풀어보겠습니다. 사실 소스 설명보다는 파일 위치만 알려주는 정도일 것이니 너무 기대는 하지마세요.

일단 jsp tag library 를 사용하시려면 jsp 엔진이 jsp spec 1.1 이상이어야 합니다. jsp 1.0 은 tag library 를 지원하지 않습니다. 이 강좌를 테스트한 jsp 엔진은 Tomcat 3.2.3 입니다.

기초적인 단계로 tag 를 이용해서 단순히 text 를 출력하는 것을 시도해보겠습니다. 소스의 출처는 Manning출판사에서 나온 JSP Tag Libraries 책 chapter3 입니다. 제가 경로랑 text를 약간 수정한 것입니다.

일단 tag handler class 는 java 파일인데, javax.servlet.jsp.* 을 import 하기 때문에 servlet.jar 파일이 classpath 에 잡혀있어야 합니다. resin 일 경우 jsdk22.jar 나 jsdk23.jar 파일이 상응합니다. jakarta-tomcat/lib/ 디렉토리에 있는 servlet.jar 파일을 다음 위치로 복사해줍니다. 권장은 시스템 재부팅입니다. 안해도 먹히는 경우가 있지만, ^^; 어디까지나 권장입니다. 다른 방법은 환경변수(classpath)에 추가해도 되겠지만 전 이 방법을 더 선호합니다. 편求歐楮? 어느 위치냐 하면 jdk1.3/jre/lib/ext 아래입니다.

classpath01.gif

tag handler class 인 OkTag.java 파일입니다. tag 를 처리(handle)해주는 것이죠.
파일의 위치는 package 와 관계있습니다.
물론 classpath 에 자신이 있으신 분들은 자유롭게 위치시켜주세요. 아닌 분들은 절 따라오시구요.
일단 ROOT 디렉토리가 c:/jakarta-tomcat/webapps/ROOT 라고 가정하고 이것은 / 로 표시를 하겠습니다. /WEB-INF 는 c:/jakarta-tomcat/webapps/ROOT/WEB-INF 와 같은 뜻입니다.
(^^; 사실 경로 부분 설명하기가 제일 힘듭니다.)
이 소스를 /WEB-INF/classes/ok/tag/OkTag.java 위치에 저장합니다.

OkTag.java

아주 가장 기본적인 tag handler 입니다. 이 뼈대를 갖고 점진적으로 확장을 하면서 코딩을 하게 되죠. 기초라는 얘기는 아주 쉽다란 뜻도 있지만, 없어서는 안된다는 뜻도 갖고 있습니다. 코드 하나 하나를 눈여겨 보시면 됩니다. 뭐 굳이 외울 필요까지는... 왜냐하면 3번이상 반복하면 저절로 외워지게 됩니다.(*_*; 천재냐구요? 옙 저는 천재, 퍽# 크헉#$%#$,~ T_T; 자꾸 사용하면 저절로 외워진다는 뜻임다. 그게 와땀니다.)

컴파일은 도스창(cmd 창) 띄우고 cd c:/jakarta-tomcat/webapps/WEB-INF/classes/ok/tag 로 가서, javac OkTag.java 하시면 됩니다.

다음에 필요한 파일은 tld(Tag Library Descriptor) 설명파일입니다.
tag handler file의 위치와 필요한 속성들을 설명해주는 파일이죠.
jsp 엔진으로 하여금 tag handler 를 빨리 인식하도록 해주는 역할을 하는 파일입니다.
소스의 문법은 xml 입니다. 어~ 저기 가지마세요. xml 별로 어려운 거 아니니까요.
아주 기본적인 xml 규칙만 알고 있으면 됩니다. 그거 별거 없슴다. 20줄도 안됨다.
고저 우리 연변에서는 20줄짜리 tld는 tld 축에도 못낍니다. 100줄짜리 정도 되야 좀 쓸만한 tld 구나라고 생각합니다. 10000줄짜리 tld 파일 보셨슴니까.
퍽#@#$#!@ (^^; 죄송합니다. 수다맨이 요즘 너무 좋아서리... 좀 따라해봤습니다.)

oktags.tld

<taglib>
<tlibversion>1.0</tlibversion>
<jspversion>1.1</jspversion>
<shortname>oktg</shortname>
<uri> http://www.okjsp.pe.kr/ok-taglib </uri>
<info>
A simple sample tag library
</info>

<tag>
<name>oktag</name>
<tagclass>ok.tag.OkTag</tagclass>
<bodycontent>empty</bodycontent>
<info>
Just Beginning.
</info>
</tag>
</taglib>


다음에 필요한 파일은 tld(Tag Library Descriptor) 설명파일입니다. tag handler file의 위치와 필요한 속성들을 설명해주는 파일이죠. 또한 jsp 소스에서 사용되는 이름을 지정해줍니다. oktag 라는 tag를 사용하게 될 것입니다. 소스의 문법은 xml 입니다. 어~ 저기 가지마세요. xml 별로 어려운 거 아니니까요. 아주 기본적인 xml 규칙만 알고 있으면 됩니다. 그거 별거 없슴다. 20줄도 안됨다. 고저 우리 연변에서는 20줄짜리 tld는 tld 축에도 못낍니다. 100줄짜리 정도 되야 "좀 쓸만한 tld 구나"라고들 말 합니다. 10000줄짜리 tld 파일 보셨슴니까. 퍽#@#$#!@ (^^; 죄송합니다. 수다맨이 요즘 너무 좋아서리... 좀 따라해봤습니다.). 파일의 위치는 /WEB-INF/oktags.tld 입니다.

파일의 위치는 /WEB-INF/web.xml 입니다. 문서의 맨 첫줄은 반드시 <?xml version="1.0" encoding="ISO-8859-1"?> 로 시작해야 합니다. 이 웹 xml은 tld 파일을 jsp 엔진 하여금 tag handler 를 빨리 인식하도록 해주는 역할을 하는 파일입니다. <taglib-uri> 에 관해서는 jsp 소스에서 지정하는 uri와 맞아야합니다만 현재로서는 저도 명확하게 이해를 하지 않은 부분입니다.

web.xml
<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
"http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">

<web-app>
<taglib>
<taglib-uri>
http://www.okjsp.pe.kr/ok-taglib
</taglib-uri>
<taglib-location>
/WEB-INF/oktags.tld
</taglib-location>
</taglib>
</web-app>



이상 3개의 파일을 사용하는 jsp 파일은 다음과 같습니다. 이 파일을 /jsptag.jsp 로 저장( / 디렉토리)한 다음에 브라우저에서 http://localhost/jsptag.jsp 를 호출해 보십시오.

jsptag.jsp

성공하셨다면 참 잘 되었습니다만, 만일 제대로 컴파일이 되지 않거나 실행이 안된다면 메시지 보시고, 잘 풀어가세요. 오늘은 이정도에서 그만하겠습니다. tips 에 올린 oktag.zip 파일을 갖고 테스트 해보십시오.


http://okjsp.pe.kr

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,034 명
  • 현재 강좌수 :  35,791 개
  • 현재 접속자 :  90 명