| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
- viewResolver
- IoCContainer
- github
- Spring
- iterm2
- 아이텀2
- Sts
- 스프링프레임워크
- macoracle
- servlet
- 객체지향
- 자바
- GIT
- git커스텀
- 깃허브
- 인터페이스
- springframework
- 깃커스텀
- oracle
- di
- 깃
- URLmapping
- 객체지향프로그래밍
- 설정파일분리
- Interface
- Java
- 프레임워크
- 스프링
- annotation
- xml
- Today
- Total
공부만이 살길
Dispatcher-servlet.xml에 대해서 알아보기 [3] - Tiles 지시서를 통한 공통분모 집중화 본문
Dispatcher-servlet.xml에 대해서 알아보기 [3] - Tiles 지시서를 통한 공통분모 집중화
공부만이 살길이야 2024. 2. 22. 12:44웹페이지를 개발하면 공통적으로 삽입되는 부분이 있다.
Header, Footer, SideMenu 등이 포함된다.
이러한 부분은 개발자의 입장에서 계속 반복되는 코드이므로, 따로 설정파일로 분리하여 불러와 사용하면 더욱 깔끔하게 개발이 가능하다.
중복되는 코드를 담은 Include의 의미를 지닌, Inc 폴더 안에 header, footer등을 구분하여 코드를 작성한다.

그리고 Tiles를 사용하기 위해서 그에 맞는 튜토리얼 형식을 가져와 변환시키려고한다.
https://tiles.apache.org/framework/tutorial/basic/pages.html 에 접속해서

가장 위 <?xml> 태그를 제외한 DOCTYPE부터의 코드를 복사하여, 튜토리얼에서 제시하는
WEB-INF 파일 하위 tiles.xml 파일을 생성하여 붙여 넣는다.
태그에 대한 설명을 첨부하자면,
<definition name="컨트롤러 반환 경로" template="분리한 파일을 합치는 레이아웃페이지 경로">
<put-attribute name="분리한 파일" value="분리한 파일의 경로"/>
로서 작성하게 된다.

위 tiles.xml 코드를 예시로 보면, definition name="notice.*"로 지정이 되어있다.

이는 컨트롤러에서 반환되었던 경로인 "notice.list"의 경로에 포함되며, 다른 컨트롤러의 notice.detail 등도 함께 포함되어
해당 경로에 해당하는 요청이 왔을 때를 의미한다.
그리고 layout.jsp에서 내부에서 지정된 Put-attribute를 합쳐 하나의 페이지로 만들게 된다.
추가적으로, <put-attribute name="body> 의 value에 있는 {1}은, 컨트롤러에서 넘어온 list 혹은 detail의 값이 넘어가서 작동하게 된다.

layout.jsp에서 분리한 파일들을 합쳐주는 작업을 한다.
<%@ taglib prefix="tiles" uri="http://http://tiles.apache.org/tags-tiles" %> tiles 라이브러리를 추가한다.
아직 추가 하지 않았다면, 아마 uri를 작성할 때 자동완성이 되지 않을 것인데, pom.xml에서 dependency를 추가해야한다.
https://mvnrepository.com/artifact/org.apache.tiles/tiles-jsp
해당 maven repository에서 최신버전을 복사하여 pom.xml에 추가한다.

이렇게 추가하면, tiles 라이브러리를 사용할 수 있다.

다시 layout.jsp로 돌아와서, tiles.xml에서 설정해두었던 분리된 파일들은 layout.jsp에서
<tiles:insertAttribute> 코드를 통해 조립하여 사용하게 된다.
이제 작동하면 될 것 같지만, 아직 아니다.
dispatcher-servlet.xml에서, Tiles와 관련된 ViewResolver를 설정해주어야 한다.
컨트롤러가 반환하는 경로를 Tiles를 통해 조립되어야하는데, 이에 대한 지시서를 작성해야한다.

Dispatcher-servlet에 해당 내용을 작성하고 나면, 정상적으로 Tiles를 사용할 수 있게된다.
<property name="order" value="1">를 통해 우선순위를 1번째로 지정하여, 다른 ViewResolver와 충돌하지 않도록 지정한다.
'Spring framework' 카테고리의 다른 글
| Dispatcher-servlet.xml에 대해서 알아보기 [5] - 스프링 설정파일 분리 (0) | 2024.02.22 |
|---|---|
| Dispatcher-servlet.xml에 대해서 알아보기 [4] - DataSource를 활용한 DB 연결정보 분리 (0) | 2024.02.22 |
| Dispatcher-servlet.xml에 대해서 알아보기 [2] - ViewResolver (0) | 2024.02.22 |
| Dispatcher-servlet.xml에 대해서 알아보기 [1] - 기본 설명 및 설정 (0) | 2024.02.16 |
| 어노테이션 (annotation) [3] - @Configuration을 활용한 XML과의 완전한 독립 (1) | 2024.02.01 |