본문 바로가기

Spring

tiles3 셋팅 방법 미완성

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>