๐Ÿ™Œ์ž˜๋ชป๋œ ์„ค๋ช…์— ๋Œ€ํ•œ ์ง€์ ์ด๋‚˜ ์กฐ์–ธ์˜ ๋Œ“๊ธ€์„ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค๐Ÿ™Œ

 

tiles๋ž€

View page๋กœ ์ œ๊ณตํ•˜๋Š” jsp ํŒŒ์ผ์˜ ์ค‘๋ณต๋˜๋Š” ์š”์†Œ๋ฅผ ํŽ˜์ด์ง€ ์กฐ๊ฐ์œผ๋กœ ๋‚˜๋ˆ„์–ด ๊ด€๋ฆฌํ•˜๋„๋ก ๋•๋Š” ํ…œํ”Œ๋ฆฟ ๊ตฌ์„ฑ ํ”„๋ ˆ์ž„์›Œํฌ

https://tiles.apache.org/framework/index.html

 

Apache Tiles - Framework - Home

 

tiles.apache.org

 

tiles์˜ ๊ฐ„๋‹จ ์‚ฌ์šฉ๋ฒ•

ํ”„๋กœ์ ํŠธ์—์„œ tiles๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” pom.xml ํŒŒ์ผ์—์„œ maven dependency๋ฅผ ๊ฐ€์žฅ ๋จผ์ € ์ถ”๊ฐ€ํ•œ๋‹ค.

	<!-- tiles framework -->
	<dependency>
       <groupId>org.apache.tiles</groupId>
       <artifactId>tiles-extras</artifactId>
       <version>3.0.8</version>
     </dependency>
     <dependency>
         <groupId>org.apache.tiles</groupId>
         <artifactId>tiles-servlet</artifactId>
         <version>3.0.8</version>
     </dependency>
     <dependency>
         <groupId>org.apache.tiles</groupId>
         <artifactId>tiles-jsp</artifactId>
         <version>3.0.8</version>
     </dependency>

๊ทธ ๋‹ค์Œ Servlet-Context.xml ํŒŒ์ผ์—์„œ tiles bean ์ƒ์„ฑ์ด ๊ฐ€๋Šฅํ•˜๋„๋ก viewResolver์™€ Configurer๋ฅผ ์„ค์ •ํ•œ๋‹ค.

- viewResolver: tiles template์œผ๋กœ ์„ค์ •๋œ ํŒŒ์ผ์„ ์ฐพ์•„์„œ ๋ Œ๋”๋ง ํ•ด์ฃผ๋Š” ์—ญํ• 

<!-- 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>
	<!-- Tiles ์„ค์ • ํŒŒ์ผ -->
	<beans:bean id="tilesConfigurer"
		class="org.springframework.web.servlet.view.tiles3.TilesConfigurer">
		<beans:property name="definitions">
			<beans:list>
				<beans:value>/WEB-INF/tiles/tiles.xml</beans:value>
			</beans:list>
		</beans:property>
	</beans:bean>

 

์„ธ๋ฒˆ์งธ๋กœ๋Š” tiles.xml๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ์œ„์—์„œ ์„ ์–ธํ•œ๋Œ€๋กœ /WEB-INF/tiles/tiles.xml ์œ„์น˜์— xmlํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•œ๋‹ค.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE tiles-definitions PUBLIC 
    "-//Apache Software Foundation//DTD Tiles Configuration 3.0//EN" 
    "http://tiles.apache.org/dtds/tiles-config_3_0.dtd">
<tiles-definitions>
    <definition name="classic" template="/WEB-INF/tiles/layouts/classic.jsp">
    	<put-attribute name="TopMenu" value="/WEB-INF/tiles/components/TopMenu.jsp" />
        <put-attribute name="SideBar" value="/WEB-INF/tiles/components/NewSideBar.jsp" />
    </definition>
    <definition name="*/*" extends="classic">
        <put-attribute name="content" value="/WEB-INF/views/{1}/{2}.jsp" />
    </definition>
</tiles-definitions>

 

์œ„ ์˜ˆ์ œ์˜ classic.jsp์ฒ˜๋Ÿผ layout์šฉ jsp ํŒŒ์ผ์„ ์ƒ์„ฑํ•œ๋‹ค.

tiles.xml ์—์„œ put-attributeํ•œ name์œผ๋กœ template์šฉ jsp ํŒŒ์ผ ์•ˆ์— tiles:insertAttributeํ•˜๋ฉด ํ…œํ”Œ๋ฆฟ์˜ ์ฝ”๋“œ์™€ insert๋œ ์ฝ”๋“œ๊ฐ€ ํ•จ๊ป˜ ๋ Œ๋”๋ง ๋˜์–ด ํ™”๋ฉด์— ํ‘œ์‹œ๋œ๋‹ค.

<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles"%>
<html>
<head>
  <link href="css/common.css" rel="stylesheet">
  <title>project titles</title>
</head>
<body>
  <tiles:insertAttribute name="SideBar" />
  <tiles:insertAttribute name="TopMenu" />
  <tiles:insertAttribute name="content" />
</body>
</html>

 

Reference

 

+ Recent posts