JSP(JavaServer Pages) API를 활용하면 HTML이나 XML 태그와 유사한 형태의 커스텀 JSP 태그를 직접 정의할 수 있습니다. 그리고 태그 라이브러리(tag library)란 이처럼 사용자가 정의한 태그들이 모여 특정 동작을 수행하도록 구현된 태그의 집합을 의미합니다.
taglib 지시문이란?
taglib 지시문(directive)은 JSP 페이지에서 커스텀 태그 집합을 사용하겠다고 선언하는 역할을 합니다. 이 지시문은 세 가지 기능을 수행합니다.
- JSP 페이지가 커스텀 태그 집합을 사용한다고 선언
- 태그 라이브러리의 위치(uri) 식별
- JSP 페이지 내에서 커스텀 태그를 인식할 수 있는 방법 제공
taglib 지시문 기본 문법
taglib 지시문은 아래와 같은 문법으로 작성합니다.
<%@ taglib uri = "uri" prefix = "prefixOfTag" >
각 속성의 의미는 다음과 같습니다.
- uri: 컨테이너가 해석할 수 있는 태그 라이브러리의 위치를 지정합니다.
- prefix: 어떤 마크업이 커스텀 액션(custom action)인지 컨테이너에 알려주는 접두사 역할을 합니다.
위 문법은 XML 문법으로도 동일하게 표현할 수 있습니다.
<jsp:directive.taglib uri = "uri" prefix = "prefixOfTag" />
커스텀 태그 사용 방법
커스텀 태그를 실제로 사용할 때는 일반적으로 <prefix:tagname> 형태로 작성합니다. 이때 접두사(prefix)는 taglib 지시문에서 선언한 값과 반드시 동일해야 하며, 태그 이름(tag name)은 해당 태그 라이브러리 안에 구현된 태그의 이름을 사용합니다.
실전 예제
예를 들어, custlib라는 태그 라이브러리에 hello라는 이름의 태그가 정의되어 있다고 가정해 보겠습니다. 이 hello 태그를 mytag라는 접두사와 함께 사용하고 싶다면, 태그는 <mytag:hello> 형태가 되며 JSP 파일에서는 다음과 같이 작성합니다.
<%@ taglib uri = "https://www.example.com/custlib" prefix = "mytag" %>
<html>
<body>
<mytag:hello/>
</body>
</html>위 코드에서 첫 줄의 taglib 지시문이 실행되면, 컨테이너는 지정된 URI 위치에서 태그 라이브러리를 찾아 mytag 접두사로 시작하는 모든 태그를 해당 라이브러리의 커스텀 액션으로 처리합니다. 결과적으로 <mytag:hello/> 태그가 호출되면 라이브러리에 구현된 hello 태그의 동작이 실행됩니다.