JSP

day47) 커스텀 태그(Custom Tag)

code_learner 2022. 3. 14. 18:41

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>