1. Tiles 2 연동을 이용한 레이아웃 템플릿 처리
: 레이아웃이 같고 동일한 내용일 들어가는 영역이 많을 때 템플릿 Library(ex. Tiles)를 사용해 레이아웃을 처리해 View와 관련한 Code 중복을 제거할 수 있다.
Tiles2 연동방법
1) jar 파일 추가
- tiles-api-2.1.x.jar, tiles-core-2.1.x.jar, tiles-jsp-2.1.x.jar
- commons-beanutils.jar, commons-digester.jar, commons-logging.jar
- SPRING webmvc Module
2) spring 설정파일
- TilesConfigurer Class를 이용해 Tiles2 레이아웃 설정파일 명시
<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">
<property name="definitions">
<list>
<value>/WEB-INF/tiles2def/tilesdef.xml</value>
</list>
</property>
</bean>
- UrlBasedViewResolver Class의 viewClass 프로퍼티를 TilesView로 지정
<bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.tiles2.TilesView"/>
</bean>
- TilesConfigurer Bean 객체는 definitions 속성을 이용해 Tiles 설정파일 목록을 전달받고, TilesView Class는 컨트롤러가 지정한 View 이름을 갖는 <definition>태그를 사용해 View를 생성한다.
<tiles-definitions>
<definition name="base_layout"
...
</definition>
...
</tiles-definitions>
2. spring Bean을 ViewPreparer로 사용하기
: 모든 View에서 공통으로 사용되는 데이터가 있을 경우 사용한다.
Tiles 설정 파일에는 완전한 Class명을 적는다.
- 설정 방법
- TilesConfigurer 설정에 prepareFactoryClass 프로퍼티 설정 추가
- ViewPreparer로 사용할 SPRING 빈 등록
- Tiles 설정 파일의 preparer 속성에 SPRING 빈 이름 등록
<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">
<property name="definitions">
<list>
<value>/WEB-INF/tiles2def/tilesdef.xml</value>
</list>
</property>
<property name="preparerFactoryClass" value="org.springframework.web.servlet.view.tiles2.SpringBeanPreparerFactory"/>
</bean>
<bean id="menuPreparer" class="madvirus.spring.chap07.tiles2.MenuPreparer"/>
<tiles-definitions>
<definition name="base_layout"
template="/WEB-INF/viewtiles2/template/layout.jsp"
preparer="menuPreparer">
...
</definition>
...
</tiles-definitions>
'SPRING' 카테고리의 다른 글
SPRING Database 연동과 Jdbc 지원 (0) | 2022.11.18 |
---|---|
HTML 이외의 View 구현 (0) | 2022.11.17 |
SPRING View 영역 구현 (0) | 2022.11.14 |
SPRING Controller Model (0) | 2022.11.13 |
SPRING View 지정 (0) | 2022.11.12 |