JSP/Servlet – 동적 애트리뷰트를 지원하는 태그 파일 만들기
2016/02/18 - [프로그래밍/JSP/Servlet] - JSP/Servlet – 애트리뷰트를 지원하는 태그 파일 만들기
2016/02/14 - [프로그래밍/JSP/Servlet] - JSP/Servlet – 태그 파일을 이용해서 커스텀 액션 만드는 방법
이전 예제에서는 attribute지시자를 이용해서 모든 애트리뷰트를 정의했습니다.
이번에는 커스텀 액션을 dynamic-attributes 지시자를 이용해서 만들어봅시다. 이 지시자를 사용하며 다음과 같이 애트리뷰트 값을 가져올 수 있습니다.
<%@tag dynamic-attributes="동적 애트리뷰트 이름"%>
${동적 애트리뷰트 이름.사용 애트리뷰트 이름}
동적 애트리뷰트는 먼저 태그 파일에서 page 영역의 데이터를 가져와야 합니다. 이때는 Map 객체를 사용합니다.
Map attrs = (Map) jspContext.getAttribute("attrs");
동적 애트리뷰트의 경우 모든 애트리뷰트 값이 문자열로 저장되서 리턴 값을 String 타입으로 변환해야 합니다.
Stirng str = (Stirng)attrs.get("size");
만약 Int타입으로 사용하고 싶다면 다음과 같이 파싱을 해야합니다.
int size = Integer.parseInt(str);
위와 같이 /WEB-INF/tags 폴더 안에 태그 파일을 넣습니다.
allnewLine.tag
<%@tag body-content="empty"%>
<%@tag dynamic-attributes="attrs" %>
<FONT color=${attrs.color }>
<%
java.util.Map attrs = (java.util.Map)jspContext.getAttribute("attrs");
String str = (String)attrs.get("size");
int size = Integer.parseInt(str);
for(int cnt = 0; cnt < size; cnt++){
out.print("-");
}
%>
</FONT>
TagTest.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%@taglib prefix="util" tagdir="/WEB-INF/tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
<util:allnewLine color="blue" size="25"/> <BR>
TagTest <BR>
<util:allnewLine color="red" size="20"/>
</body>
</html>
실행화면
다음과 같이 동적 애트리뷰트를 사용해도 결과는 잘나옴을 알 수 있습니다.
'프로그래밍 > JSP Servlet' 카테고리의 다른 글
JSP/Servlet – 태그클래스를 이용해서 애트리뷰트가 있는 커스텀 액션 만들기 (1) | 2016.02.23 |
---|---|
JSP/Servlet – SimpleTagSupport 클래스를 이용해서 태그 클래스 작성하기 (0) | 2016.02.22 |
JSP/Servlet – 커스텀 액션에 변수를 사용해보자 (0) | 2016.02.22 |
JSP/Servlet – 커스텀 액션에 body를 추가해보자 (0) | 2016.02.21 |
JSP/Servlet – 애트리뷰트를 지원하는 태그 파일 만들기 (0) | 2016.02.18 |
JSP/Servlet – 태그 파일을 이용해서 커스텀 액션 만드는 방법 (0) | 2016.02.14 |
JSP/Servlet – JSTL <fmt:requestEncoding> 커스텀 액션 사용하기 (0) | 2016.02.10 |
JSP/Servlet – JSTL 프로퍼티 파일에 변수 포함하기 (0) | 2016.02.10 |