■ Tiles (타일즈) 컴포넌트
타일즈 컴포넌트는 페이지의 모듈화를 위해 지원하는 컴포넌트이다. 스트럿츠는 Action 을 수행한 후 ActionForward 로 페이지를 전환하기 때문에 단순한 입력을 받아 Action을 수행한 후 출력페이지로 출력하는 단순한 페이지 전환에는 좋다. 하지만 메인 페이지를 유지한 채 콘텐츠의 내용만 바뀌는 식의 어플리케이션 제작에는 많은 제약이 있다. 이런 부분을 해결하기 위한 컴포넌트가 타일즈이다.
타일즈는 설정파일을 통해 페이지 구성을 지정할 수 있다. ActionForward와 타일즈의 설정파일을 일치시켜 공통된 레이아웃 구성을 할 수 있게 도와준다.
■ Tiles (타일즈) 컴포넌트 사용방법
스트럿츠 1.3 을 설치했다면 타일즈 컴포넌트를 사용할 수 있습니다. 우선 타일즈 사용을 지정합니다. WEB-INF/web.xml 파일에 타일즈 컴포넌트를 등록합니다.
<init-param>
<param-name>chainConfig</param-name>
<param-value>org/apache/struts/tiles/chain-config.xml</param-value>
</init-param>
WEB-INF/web.xml 설정파일에 타일즈를 등록했다면 스트럿츠에서 타일즈를 등록합니다. struts-config.xml 설정 파일에서 타일즈를 등록합니다.
<plug-in className="org.apache.struts.tiles.TilesPlugin">
<set-property property="definitions-config" value="/WEB-INF/config/tiles-defs.xml"/>
</plug-in>
두껍게 작성된 부분이 타일즈의 설정 파일이 위치하는 경로 입니다. tiles-defs.xml 파일은 위에 지정한 위치에 있어야 합니다.
■ 스트럿츠 struts-config.xml 과 타일즈 tiles-defs.xml 설정을 통해 Action과 보여주는 페이지 매칭하기
struts-config.xml 파일 설정
<action path="/index" forward="default" />
<action path="/act" type="co.kr.action.MainAction" validate="false" scope="request">
<forward name="init" path="init"/>
</action>
</action-mappings>
tiles-defs.xml 파일 설정
<?xml version="1.0" encoding="euc-kr" ?>
<!DOCTYPE tiles-definitions PUBLIC "-//Apache Software Foundation//DTD Tiles Configuration 1.1//EN"
"http://jakarta.apache.org/struts/dtds/tiles-config_1_1.dtd">
<tiles-definitions>
<definition name="default" path="/JSP/common/layout.jsp">
<put name="header" value="/JSP/common/header.jsp"/>
<put name="body" value="/JSP/common/init.jsp"/>
<put name="footer" value="/JSP/common/footer.jsp"/>
</definition>
<definition name="init" extends="default">
<put name="body" value="/JSP/common/test.jsp"/>
</definition>
</tiles-definitions>
두껍게 작성된 글자는 스트럿츠 설정파일의 forward와 타일즈의 설정파일이 매핑되는 부분을 지정한 것입니다. Action 을 수행한 후 forward시 타일즈의 설정 파일을 읽어 매핑을 통해 페이지를 보여줍니다. 또한 상속을 통해 바뀌는 부분만을 정의할 수 있습니다. 이런 방식으로 페이지의 구성을 유지한 채 내용영역의 부분을 변경할 수 있습니다.
전체 레이아웃을 결정하는 페이지는 <definition name="default" path="/JSP/common/layout.jsp"> 부분입니다. 이 페이지는 다음과 같이 작성하면 해당 페이지에서 타일즈 설정 파일을 검색해 해당 페이지를 로딩합니다.
layout.jsp 페이지
<% request.setCharacterEncoding("euc-kr"); %>
<%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>타일즈 사용 예제</title>
</head>
<body>
<div id="header"><tiles:insert attribute="header"/></div>
<div id="content"><tiles:insert attribute="body"/></div>
<div id="footer"><tiles:insert attribute="footer"/></div>
</body>
</html>
'Java2EE Framework > Struts1.3 ' 카테고리의 다른 글
타일즈와 JSTL을 같이 사용할 때 주의할 점 (0) | 2010.09.10 |
---|---|
스트럿츠1.3 커스텀 태그 사용하기 (0) | 2010.09.10 |
index 페이지 요청시 스트럿츠 적용 방법 (0) | 2010.09.10 |
스트럿츠1.3 - 스트럿츠의 액션(컨트롤러) 종류 (0) | 2010.05.29 |
스트럿츠1.3 - 컨트롤러 구현 방법 (0) | 2010.05.29 |