- 개발자의 목적에 따랏 태그를 정의하고 , 해당태그를 작동하게 해주는 확장 기술이다.
UI에서 반복되는 내용을 한 번만 작성한 후 JSP 태그와 매핑한다. 이후 미리 정의된 내용이 필요할 때
JSP 페이지에서 태그만 선언하면 미리 정의된 내용을 실행 할수 있습니다.
장점
- 재사용성 : 한번의 코드를 작성 후에 JSP 페이지 내에서 태그를 이요하여 원하는 곳에 얼마든지 실행 할 수 있다.
- 역할 분담 : 화면 개발 시 화면을 만드는 부분과 데이터를 처리하는 부분을 구분하여 작업 할 수 있습니다. 데이터를 처리하는 부분을
개발자가 커스텀 태그로 작성하여 처리하고, 디자이너들은 화면 구성에만 집중하여 작업할 수있다.
- 유지 보수성 : 커스텀 태그는 미리 정의된 내용을 재사용합니다. 만일 기존 작업을 수정해야 하는 상황이 발생하면, 내용을 구현한 모든
소스를 찾아 일일이 수정하는것이 아니라, 커스텀 태그에 정의된 내용만 수정하면 일괄처리가 된다.
- 가독성 : 소스 내에 복잡한 코드를 일일이 구현하는 것이 아니라, 별도로 구현하고 태그를 이용하여 소스를 작성하기 때문에 가독성이 좋다.
- 클래스 기반 작성
- 태그 기반 작성
1) 클래스 기반 커스텀 태그
-> 클래스 기반 작성 방법은 태그의 기능을 자바 클래스 파일에 구현한 다음, JSP 태그와 연결하여 사용한다.
태그 기반 작성 방법은 태그의 기능을 JSP 페이지로 구현한 다음 , JSP 태그와 연결하여 사용한다.
1) 태그 핸들러 클래스(Tag Handler Class)
-> 커스텀 태그를 사용할 때 호출되는 자바 클래스 파일이다. 커스텀 태그가 수행해야 하는 실행문을 구현하고 있는 자바객체이다.
2) 태그 라이브러리 디스크립터(Tag Library Descriptor)
-> 커스텀 태그가 수행해야 하는 실행문은 태그 핸들러 클래스에 구현한다.
그러나 JSP페이지 내에서 사용할 때는 클래스를 직접 사용하는것이 아니라, JSP 커스텀 태그 이름으로 사용해야 한다.
실제 로직이 구현된 클래스파일을 어떤 JSP 태그 이름으로 사용할지를 설정하는 XML 파일이다.
태그 라이브러리 디스크립터 파일은 .tld 확장자를 사요한다.
3) TLD 파일 등록
-> TLD 파일에는 자바 클래스와 JSP 태그를 매핑한 정보가 있습니다. 즉, 커스텀 태그에 대한 정보가 있다.
개발자가 만들어 사용하는 커스텀 태그를 JSP 페이지에서 사용하려면 TLD 파일을 JSP 컨테이너가 인식할 수 있도록 등록해야 한다.
WEB-INF 폴더에 넣으면 자동으로 인식한다.
4) taglib 지시자
-> JSP 페이지에서 커스텀 태그를 사용하려면 어떤 커스텀 태그를 사용할지를 taglib 지시자를 사용하여 선언해야 한다.
taglib 지시자는 태그 라이브러리의 uri와 prefix 값을 속성으로 가진다. taglib 지시자는 커스텀 태그가 정의된 TLD와 JSP 파일을 연결해준다.
- 태그 핸들러 클래스 -
커스텀 태그가 실행해야 하는 로직을 담고 있는 자바 객체.
커스텀태그에 관한 API는 javax.servlet.jsp.tagext 패키지에 있다.
- Tag : 모든 태그 핸들러 클래스가 상속하는 인터페이스이다.
- IterationTag : 반복 수행(loop) 하기 위해서 사용되는 메서드를 정의 하고 있는 메서드이다.
- BodyTag : JSP에서 몸체를 처리하는 태그를 사용할 때 몸체를 처리하기 위한 메서드를 정의하고 있는 인터페이스이다.
- TagSupport : 개발자가 태그 라이브러리를 손쉽게 개발할 수 있도록 만들어진 객체로서 기본적으로 반복 수행을 위한 태그를 생성할수 있다.
- BodyTagSupport : 개발자가 몸체가 있는 태그 라이브러리를 손쉽게 개발할 수 있도록 만들어진 클래스이다.
- SimpleTag : JSP 2.0 에서 커스텀 태그 작성의 간편화를 위해 추가된 인터페스이다.
- SimpleTagSupport : JSP 2.0 에 추가 되었으며 SimpleTag 를 구현하고 있다
- 태그 라이브러리 디스크립터 -
TLD(Tag Library Discriptor) 파일은 태그 핸들러 클래스와 JSP 페이지에서 사용할 태그 이름을 매핑하여 커스텀 태그를 동작 할 수 있게 하는 커스텀 태그 환경설정 파일이다. TLD 파일은 XML 형태이다.
- <taglib> -
<taglib>는 여러개의 커스텀 태그들로 구성된 하나의 태그 라이브러리에 대한 정보다. TLD 파일의 루트(root) 태그이다.
하위태그들은 다음과 같다.
- tlib-version : 태그 라이브러리 버전을 지정
- jsp-version : JSP 버전을 지정
- short-name : 태그 라이브러리의 이름을 지정한다.
- uri : JSP 페이지에서 TLD 파일을 연결할 때 사용할 이름을 지정한다.
- <tag> -
<tag> 는 태그 라이브러리에 구성되 있는 하나의 태그에 대한 정보를 나타내는 태그입니다. 따라서 <taglib> 는 여려개의 <tag>로 구성된다.
- name : 커스텀 태그의 이름을 지정한다.
- tag-class : 커스텀 태그와 연결되는 Tag-Handler 객체를 지정한다
- body-content : 커스텀 태그 몸체의 content type을 지정한다.
- attribute : 커스텀 태그의 속성에 대한 정보를 지정한다.
- tel-class : 커스텀 태그에 부가적인 기능을 추가한다.
- <attribute> -
<attribute> 는 태그에 속성을 정의할때 사용하는 태그
- name : 속성의 이름을 지정한다. 반드시 지정해야한다.
- required : 태그 사용 시 이 속성값이 필수 요소인지를 지정한다 . true로 값을 지정햇을 때 태그 사용시 반드시 속성값을 지정해야 하며 지정하지 않으며 오류가 발생한다.
- rtextprvalue : 속성값을 정적데이터가 아니라 동적 데이터로 처리하고자 할때 ture로 지정한다. 동적데이터란 태그가 실행할 때 속성값이 동적으로 처리된다는 것을 의미한다. 기본값은 false이다.
3) TLD 파일 등록
-> 작성된 커스텀 태그가 올바르게 동작하려면 JSP 페이지를 처리하느 JSP 컨테이너가 TLD 파일에 대한 정보를 알고 있어야 한다.
TLD 파일에 등록된 정보를 JSP 컨테이너가 알 수 있도록 TLD 파일을 JSP 컨테이너에게 인식시키는 방법은 두가지이다.
'JSP' 카테고리의 다른 글
Static (0) | 2021.05.17 |
---|---|
jsp:include 와 <%@ include %> 차이 (0) | 2021.05.13 |
EL(Expression Language) (0) | 2021.05.11 |
JDBC 사용하기2 (0) | 2021.05.11 |
JDBC 사용하기 (0) | 2021.05.11 |