지난 글에서 간략히 tiles에 대해 알아봤는데, 이번엔 tiles 라이브러리를 다운받아 적용해보자.
Include와 Tiles
웹 사이트를 제작할 때, 공통 영역은 수정이 용이하도록 분리해서 관리하도록 작업한다. 이를테면 수십 개의 페이지들에는 동일한 내용의 상단 영역과 푸터 등이 있다. 이러한 공통 영역은 별도
hyoni-k.tistory.com
Apache Tiles 라이브러리 다운 :
1. Apache Tiles 사이트 접속한다.
http://attic.apache.org/projects/tiles.html
2. 버전에 맞게 타일즈 버전을 잘 선택하여 다운 받는다.
3. 다운로드해 압축을 풀면 라이브러리가 많은데, optional 폴더를 제외한 모든 jar파일을 복사한다.
참고로 라이브러리란.. 종속되는 라이브러리들이(라이브러리의 라이브러리, 그 라이브러리의 라이브러리..) 많으므로, 충돌 발생 가능성이 있기 때문에 사용 시 유의해야 한다. 그래서 메이븐(maven repository)이 있지만 아직 사용하지 않겠다.
(lib 폴더에 종속되는 라이브러리가 있는데, optional 폴더의 라이브러리는 제외하고 다운로드하겠다.)
4. WEB-INF → lib 폴더에 jar 파일들을 넣어 사용하면 된다.
Apache Tiles Tutorial
http://tiles.apache.org/framework/tutorial/index.html
Apache Tiles - Framework - Tutorial
Copyright © 2001-2017 The Apache Software Foundation. All Rights Reserved. Apache Tiles, Tiles, Apache, the Apache feather logo, and the Apache Tiles project logos are trademarks of The Apache Software Foundation.
tiles.apache.org
이제 적용 방법을 알아보자!
1. Apache Tiles 사이트 접속하여 Create a definition의 코드를(첫 번째 줄 제외) 복사한다.
http://tiles.apache.org/framework/tutorial/basic/pages.html
2. WEB-INF 폴더에 tiles.xml 파일을 생성하여 붙여 넣은 후 name, template, value 등에 작업하려는 폴더의 경로명과 경로를 수정한다.
참고로 분리돼있는 jsp 파일들은 사용자가 직접 요청하지 못하도록(보완 문제가 아닌 - 그 자체가 버그이기 때문에) 비공개 영역인 WEB-INF 폴더에 두고 비공개한다.
Tiles 패턴화
아래 코드 중 * (Asterisk)는 반복되는 코드를 패턴화한다.
애스터리스크는 정의한 순서에 따라 {1}, {2} 등으로 표기하는데, 순서에 맞게 매칭되기 때문에 표기법에 맞게 잘 작성해야 한다.
tiles.xml
3. web.xml 파일에 파라미터 context-param (타일즈 실행 시 context-param 내의 key 값을 읽음)와 listener를 작성(리스너는 톰캣 실행 시 실행 됨)한다.
web.xml
4. Controller 파일에 TilesContainer를 작성한다.
타일즈의 jsp 파일들을 서버로 올려야 하는데 이때 타일즈가 사용하는 컨테이너에 넣는 것이다.
ListController.java
'Web programming > Servlet & JSP' 카테고리의 다른 글
[톰캣 서버 에러] Could not publish server configuration for Tomcat v9.0 Server at localhost. (1) | 2020.06.07 |
---|---|
삼항연산자 (0) | 2020.05.15 |
Include와 Tiles (0) | 2020.05.12 |
MVC (Model View Controller) (0) | 2020.04.29 |
Collections Framework (Set, List, Map) (2) | 2020.04.27 |