728x90
태그 파일들은 Dynamic Web project의 WEB-INF의 tags 폴더에 저장, 관리하며 .tag 파일 기반의 커스텀 태그이다.
예를 들어 아래와 같은 형태의 print.tag 파일을 만들었을때
<%@ tag language="java" pageEncoding="UTF-8"%>
커스텀태그입니다. HELLO! :D
다음과 같이 커스텀 태그명을 지정해주고 해당 태그의 파일명을 불러와 사용 가능하다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib tagdir="/WEB-INF/tags" prefix="kim" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1><kim:print></kim:print></h1>
<h1><kim:print /></h1>
</body>
</html>
실행 결과
또 다른 예시로 다음과 같은 Test.java 클래스 파일을 만들었다.
package test; // 예시를 위해 만들었기 때문에 setter는 생략
import java.util.Arrays;
public class Test {
private String[] datas = {"apple","banana","kiwi"};
private int num1=10;
private int num2=20;
public String[] getDatas() {
return datas;
}
public int getNum1() {
return num1;
}
public int getNum2() {
return num2;
}
}
위 클래스를 사용하는 test.tag 태그 파일
<%@ tag language="java" pageEncoding="UTF-8"%>
<%@ attribute name="border" %>
<%@ attribute name="bgcolor" %>
<jsp:useBean id="test" class="test.Test" />
<h1><jsp:doBody /></h1>
<table border="${border}" bgcolor="${bgcolor}">
<%
for(String v:test.getDatas()){
%>
<tr>
<td><%=v%></td>
</tr>
<%
}
%>
</table>
위 예시의 태그 파일처럼 attribute를 통해 태그에 속성을 줄 수 있으며 그에 따른 name 값을 줄 수 있다.
편의를 위해 속성과 이름을 일치시켰으며 사용자가 원하는 name 값을 지정할 수 있으며
jsp:doBody는 태그 바디에 작성하는 문구가 들어가게 된다.
커스텀 태그가 사용되는 .jsp 파일
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib tagdir="/WEB-INF/tags" prefix="kim" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>태그파일 기반의 커스텀태그</title>
</head>
<body>
<kim:test border="5" bgcolor="lightpink">과일 목록</kim:test>
</body>
</html>
실행결과
728x90
'web' 카테고리의 다른 글
JSP - JSTL (0) | 2022.08.16 |
---|---|
태그핸들러클래스 기반의 커스텀태그 (0) | 2022.08.14 |
커스텀 태그 (0) | 2022.08.12 |
표현언어, EL식 (0) | 2022.08.12 |
JSP - session 객체를 이용해 장바구니 만들기 (0) | 2022.08.02 |