JSP 2.0의 tagFile 사용하기
처음 JSP으로 작업할때는 PHP나 다른 스크립트 언어 처럼 HTML 사이사이에 scriptlet을 추가했었다. JSTL이나 EL이 주가되어서 JSTL이나 EL으로 구성하게 되었지만, JSTL이나 EL으로는 부족한 부분을 CustomTag으로 만들 필요가 종종 있다. 그런데 Custom Tag을 만드는 건 생각외로 서블릿 코드 작성하는거랑 별 다를거 같은 작업인 경우가 많아서 정말 사용이 많은 태그 아니라면 배보다 배꼽이 더 커지는 경우가 있는 듯 하다.
좀 늦게 알았지만, JSP 2.0 에는 TagFile이라는 부분이 추가되었는데. CustomTag을 만드는 방식을 JSP 파일 만들는 것 처럼 만들면 되는 매우 간단한 방법이라서 몇가지 만들어서 사용하고 있다.
-
<%@ taglib prefix="html" tagdir="/WEB-INF/tags/html" %>
<html:remove var="content" value="${data.content}" />
tag는 /WEB-INF/tags/html/remove.tag
- <%@ tag body-content="empty" import="StringUtils" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ attribute name="value" required="true" %>
<%@ attribute name="var" required="true" rtexprvalue="false" type="java.lang.String" %>
<%@ variable name-from-attribute="var" alias="varName" scope="AT_END" %>
<%
String result = StringUtils.removeHtml(value);
jspContext.setAttribute("varName", result);
%>
tag의 body-content은 empty이고 jstl core 태그를 쓰며 태그의 attribute으로는 value,var 이라는 값을 받으며, tag 밖으로 var attribute의 이름으로 변수를 선언한다는 이야기.
<c:url var="link" .. > 처럼 태그 안에서 변수를 할당해서 넘기는 법을 찾는게 생각외로 오래걸렸다... 오늘 아침에서나 해결. =_=
<%@ variable .. 의 alias 의 값으로 jspContext.setAttribute에 넣어주니까 해결.
간단한 ui 컨포넌트들은 tagFiles으로 구성할수 있을 듯 하다. (진작 알았으면 좋았을 것을. =_=)
History
Last edited on 08/04/2007 12:34 by anarch
Comments (0)