컴포지트 뷰(Composite View) 패턴을 구현한 라이브러리 중에서 현재 널리 사용되고 있는 라이브러리는 Tiles 2로서, http://tiles.apache.org/download.html 사이트에서 최신버전을 다운로드 받을 수 있다. 현재 최신버전은 2.2.2이고 자바 5 또는 그 이상 버전에서 동작한다.
- 필요한 jar 파일을 WEB-INF/lib 디렉터리에 복사한다.
- web.xml에 초기화 코드 추가
- Tile 2 설정파일 작성
- 레이아웃 템플릿 JSP 파일 작성
- 템플릿을 사용하는 JSP 파일 작성
미니 코드
gate.jsp
<%@ page contentType="text/html; charset=euc-kr" %> <%@ taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles" %> <tiles:insertDefinition name="test" />
tiles-test.xml
<?xml version="1.0" encoding="euc-kr" ?> <!DOCTYPE tiles-definitions PUBLIC "-//Apache Software Foundation//DTD Tiles Configuration 2.1//EN" "http://tiles.apache.org/dtds/tiles-config_2_1.dtd"> <tiles-definitions> <definition name="test" template="/container.jsp"> <put-attribute name="title" value="Hello" /> <put-attribute name="header" value="/header.jsp" /> <put-attribute name="menu" value="/side.jsp" /> <put-attribute name="content" value="/content.jsp" /> </definition> </tiles-definitions>
web.xml
... <servlet> <servlet-name>tiles</servlet-name> <servlet-class>org.apache.tiles.web.startup.TilesServlet</servlet-class> <init-param> <param-name> org.apache.tiles.impl.BasicTilesContainer.DEFINITIONS_CONFIG </param-name> <param-value> /WEB-INF/tiles-test.xml </param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> ... </web-app>
container.jsp
<%@ page contentType="text/html; charset=euc-kr" %> <%@ taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles" %> <html> <head> <title><tiles:getAsString name="title" /></title> </head> <body> <table width="100%" border="1" cellpadding="0" cellspacing="0"> <tr> <td colspan="2"><tiles:insertAttribute name="header" /></td> </tr> <tr> <td valign="top"><tiles:insertAttribute name="menu" /></td> <td valign="top"><tiles:insertAttribute name="content" /></td> </tr> </table> </body> </html>
TilesDispatchServlet을 사용하면 웹 요청 URI와 동일한 이름을 같는 Definition을 바로 클라이언트에 출력할 수 있다. TilesDispatchServlet을 사용하려면 <servlet>태그를 이용해서 TilesDispatchServlet을 web.xml 파일에 등록하고, <servlet-mapping>을 이용해서 TilesDispatchServlet이 처리할 확장자를 설정하면 된다.
web.xml
<servlet> <servlet-name>TilesDispatchServlet</servlet-name> <servlet-class> org.apache.tiles.web.util.TilesDispatchServlet </servlet-class> </servlet> <servlet-mapping> <servlet-name>TilesDispatchServlet</servlet-name> <url-pattern>*.tiles</url-pattern> </servlet-mapping>
'Application Programing > java/jsp' 카테고리의 다른 글
Spring - view를 결정하기 (1) | 2011.04.22 |
---|---|
java - ThreadLocal 클래스 (2) | 2011.04.12 |
JNDI (2) | 2011.04.05 |
Recent Comments