전자정부프레임워크에 Apache tiles 적용하기 - #2 layout 설정
앞에서 진행 한대로
tiles dependency 와
resolver 설정이 완료 되었으면
서버를 리부팅 해본다. 에러가 없이 올라가면 OK
이어서 실제 tiles 레이아웃을 잡아 보자.
1. layout 설정파일 생성
/[프로잭트]/src/main/webapp/WEB-INF/tiles/default-layout.xml 파일을 만들고
다음 내용을 추가 한다.
<?xml version="1.0" encoding="utf-8" ?>
<!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="layouts-tiles" template="/WEB-INF/jsp/egovframework/common/default-layouts.jsp">
<put-attribute name="header" value="/WEB-INF/jsp/egovframework/common/default-header.jsp" />
<put-attribute name="content" value="" />
<put-attribute name="footer" value="/WEB-INF/jsp/egovframework/common/default-footer.jsp" />
</definition>
<definition name="*.tiles" extends="layouts-tiles">
<put-attribute name="content" value="/WEB-INF/jsp/egovframework/crmo/{1}.jsp" />
</definition>
<definition name="*/*.tiles" extends="layouts-tiles">
<put-attribute name="content" value="/WEB-INF/jsp/egovframework/crmo/{1}/{2}.jsp" />
</definition>
<definition name="*/*/*.tiles" extends="layouts-tiles">
<put-attribute name="content" value="/WEB-INF/jsp/egovframework/crmo/{1}/{2}/{3}.jsp" />
</definition>
</tiles-definitions>
tiles 2에서 부터 와일드 카드를 지원 하는 것 같다.
와일드 카드를 지원 하기 전에는 매 화면 마다 definition을 해줘야 했던 거로 기억이..
2. default-layout.jsp 만들기
기본 타일즈 레이아웃이 되는 파일이다.
위에서 지정한 대로
/WEB-INF/jsp/egovframework/common/default-layouts.jsp
에 생성한다.
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<tiles:insertAttribute name="header"/>
</head>
<body>
<t:insertAttribute name="contents"/>
<t:insertAttribute name="footer"/>
</body>
</html>
3. header 파일을 만든다.
/WEB-INF/jsp/egovframework/common/default-header.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
4. footer 파일을 만든다.
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
5. controller 에서 리턴한 경로대로 jsp 파일을 만든다.