day47) 커스텀 태그(Custom Tag)
HTML파일은 브라우저에 의해 해석되기 때문에 새롭게 정의된 나만의 태그를 사용할 수 없다.
반면에 JSP파일은 컴파일(해석)되어 서블릿 자바 소스를 클래스 파일로 컴파일하기 때문에 커스텀태그가 사용가능하다.
[커스텀 태그의 장점]
1. 로직을 캡슐화한다.
-로직을 화면에서 분리시킨다 -> View를 View답게!
2. MVC 분리에 용의하다
-유지보수에 용이하다.
[커스텀태그의 종류]
-태그 파일기반으로 개발
상대적으로 간단한 로직, 기능을 구성
단일 프로젝트에서 사용할 때 사용
-태그 핸들러클래스 기반으로 개발
여러개의 프로젝트에서 사용 할 때
배포, 공개하여 사용할 목적
상대적으로 복잡하고 어려운 로직, 기능을 구성
이번 포스팅에서는 태그 파일기반을 위주로 포스팅할 예정이다.
[커스텀태그 사용 방법]
1. 태그 파일 위치 및 태그 파일 참조
커스텀 태그를 사용할 파일에 <%@ taglib prefix="kim" tagdir="/WEB-INF/tags" %>를 추가한다
-prefix: 커스텀태그를 불러오기 위한 속성
-uri: 커스텀태그에 대한 설정파일의 위치(태그 핸들러 클래스 사용시)
-tagdir: 태그 파일이 위치한 디렉터리 경로(태그 파일기반 사용시)
2. 태그 파일 추가
2.1 body-content
-body-content="empty"
태그바디를 쓰지 않겠다.
-body-content="scriptless"
태그바디를 쓸 수 있다.
2.2 attribute
-data.tag
<%@ attribute name="border" %>
<%@ attribute name="bgcolor" %><!--NewFile.jsp의 속성을 받아온다 -->
<jsp:useBean id="datas" class="test.Test" />
<h1><jsp:doBody /></h1><!-- jsp:dobody-> 바디를 가져오겠다 -->
<!-- ${bgcolor}등을 통해 속성값을 받아 사용한다 -->
<table border="${border}" bgcolor="${bgcolor}">
<%
for(String v:datas.getDatas()){
out.println("<tr><td>"+v+"</td></tr>");
}
%>
</table>
3. 커스텀태그 사용
-NewFile.jsp
<body>
<kim:datas border="5" bgcolor="lightblue">상품목록</kim:datas>
</body>