WHAT?
반복되는 헤더 ,네비게이션, 풋터 등을 반복적으로 코딩할 필요없이, 타일즈에서 관리하여 중심부분의 코딩에 집중 할수 있게 해줌.
공통된 부분의 수정도 쉬워지고, 코드의 양도 월등히 적어진다.
tiles3의 설정 방법을 배워보겠다.
---------------------------------------------------------------------------------------------------------------------------
HOW?
1. pom.xml 에 maven dependency를 설정해준다. -tiles3경우 pom.xml 의 스프링 버전을 4.3.0.RELEASE 설정해주어야함
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-jsp</artifactId>
<version>${org.apache.tiles-version}</version>
</dependency>
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-core</artifactId>
<version>${org.apache.tiles-version}</version>
</dependency>
2. WEB-INF 에 tiles 폴더를 생성하고,
- tiles-layout.xml //아래 세개의 jsp파일로 레이아웃지정
- header.jsp
- footer.jsp
- contents.jsp 를 생성해준다.
1) tiles-layout.xml 설정
<definition name="layouts-tiles" template="/WEB-INF/views/layouts/layouts.jsp">
<put-attribute name="header" value="/WEB-INF/views/layouts/header.jsp" />
<put-attribute name="sidebar" value="/WEB-INF/views/layouts/sidebar.jsp" />
<put-attribute name="content" value="/WEB-INF/views/layouts/content.jsp" />
<put-attribute name="footer" value="/WEB-INF/views/layouts/footer.jsp" />
</definition>
<definition name="*.tiles" extends="layouts-tiles">
<put-attribute name="content" value="/WEB-INF/views/{1}.jsp" />
</definition>
<definition name="/web/*.tiles" extends="layouts-tiles">
<put-attribute name="content" value="/WEB-INF/views/web/{1}.jsp" />
</definition>
<definition name="*/*.tiles" extends="layouts-tiles">
<put-attribute name="content" value="/WEB-INF/views/{1}/{2}.jsp" />
</definition>
<definition name="*/*/*.tiles" extends="layouts-tiles">
<put-attribute name="content" value="/WEB-INF/views/{1}/{2}/{3}.jsp" />
</definition>
<!-- no tiles //타일즈 미 적용 -->
<definition name="no-tiles" template="/WEB-INF/views/layouts/noTemplate.jsp">
<put-attribute name="noTemplate" value="" />
</definition>
<definition name="*.jsp" extends="no-tiles">
<put-attribute name="noTemplate" value="/WEB-INF/views/{1}.jsp" />
</definition>
<definition name="/web/*.jsp" extends="no-tiles">
<put-attribute name="noTemplate" value="/WEB-INF/views/web/{1}.jsp" />
</definition>
<definition name="/web/*/*.jsp" extends="no-tiles">
<put-attribute name="noTemplate" value="/WEB-INF/views/web/{1}/{2}.jsp" />
</definition>
<definition name="/web/*/*/*.jsp" extends="no-tiles">
<put-attribute name="noTemplate" value="/WEB-INF/views/web/{1}/{2}/{3}.jsp" />
</definition>
2) layout.jsp 설정
<body>
<div class="wrap">
<div id="header" class="header">
<tiles:insertAttribute name="header"/>
</div>
<div id="content" class="content">
<tiles:insertAttribute name="content"/>
</div>
<div id="footer" class="footer">
<tiles:insertAttribute name="footer"/>
</div>
</div>
</body>
3) servlet-context 에 tiles뷰리졸버 설정
<!-- Tiles 뷰 리졸버 -->
<beans:bean id="tielsViewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<beans:property name="viewClass" value="org.springframework.web.servlet.view.tiles3.TilesView" />
<beans:property name="order" value="1" />
</beans:bean>
'Spring' 카테고리의 다른 글
xml파일에서 properties 파일을 사용하는 방법 (0) | 2020.01.29 |
---|---|
getParameter / @RequesetParam / @ModelAttribute (0) | 2020.01.29 |
Servlet Controller 차이 (0) | 2020.01.21 |
AJAX (feat json (0) | 2020.01.21 |
ResponseEntity와 @ResponseBody의 차이점 (0) | 2020.01.21 |