JSP Tag Library

 

JSP Tag Library

 

 

kenu

2001-08-27 2:04오전

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 아래입니다.

 

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

package ok.tag;

 

아주 가장 기본적인 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

 

 

다음에 필요한 파일은 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

 

 

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

jsptag.jsp