Site Search :
Standard Enterprise XML Methodology Pattern Setting Tunning Other
Article Contributors
GuestBook
Javapattern Maven
XSourceGen Dev
JetSpeed Test
JLook Image
jLook Family Site


Struts 1.1 Tiles-framework¿¡ ´ëÇÑ °³¿ä ¹× »ç¿ë¹æ¹ý
 
À̹ø ¾ÆƼŬÀº Jakarta-Struts¿¡ 1.1ºÎÅÍ component·Î Á¤½ÄÆ÷ÇÔ Tiles-FrameworkÀ» ÀÌ¿ëÇÏ¿© StrutsÀ» ÀÌ¿ëÇÑ template¿¡ ´ëÇÑ ¼³¸íÀ» ÇÏ°íÀÚ ÇÑ´Ù.
¸¸¾à ´ç½ÅÀÌ struts¸¦ 1.0¹öÁ¯¶§ºÎÅÍ »ç¿ëÇغôٸé tiles°¡ ¾ó¸¶³ª °­·ÂÇÑ È­¸é ±¸¼ºµµ±¸ÀÎÁö ÀÌ¹Ì ¾Ë°í ÀÖÀ» °ÍÀ̸ç, ¸ô¶óµµ »õ·Î ¹è¿ì¸é µÇ¹Ç·Î ¾Æ¹«·± »ó°üÀÌ ¾øÀ½À» ¹àÈû´Ù. ^^ ( 2003/07/14 ) 592
Written by ienvyou - ÃÖÁö¿õ
1 of 1
 

À̹ø ¾ÆƼŬÀº Jakarta-Struts¿¡ 1.1ºÎÅÍ component·Î Á¤½ÄÆ÷ÇÔ Tiles-FrameworkÀ» ÀÌ¿ëÇÏ¿©
StrutsÀ» ÀÌ¿ëÇÑ template¿¡ ´ëÇÑ ¼³¸íÀ» ÇÏ°íÀÚ ÇÑ´Ù.

¸¸¾à ´ç½ÅÀÌ struts¸¦ 1.0¹öÁ¯¶§ºÎÅÍ »ç¿ëÇغôٸé tiles°¡ ¾ó¸¶³ª °­·ÂÇÑ È­¸é ±¸¼ºµµ±¸ÀÎÁö
ÀÌ¹Ì ¾Ë°í ÀÖÀ» °ÍÀ̸ç, ¸ô¶óµµ »õ·Î ¹è¿ì¸é µÇ¹Ç·Î ¾Æ¹«·± »ó°üÀÌ ¾øÀ½À» ¹àÈû´Ù. ^^

¢º About Tiles

»ç½Ç ±âÁ¸ÀÇ Tiles°¡ ¾øÀ»¶§´Â struts¿¡¼­ È­¸éÀ» ±¸¼ºÇÏ´Â ÅÛÇø´¿¡¼­ org.apache.struts.taglib.templateÀ»
ÀÌ¿ëÇÑ put tag¸¦ ÀÌ¿ëÇÏ¿© È­¸éÀ» Á¶¸³ÇÏ¿´¾ú´Âµ¥ ¹®Á¦´Â È­¸é¿¡ ´ëÇÑ ±¸¼ºÀ» ÀÚÀ¯ÀÚÀç·Î
ÇÏÁö ¸øÇϴ´ٴ °ÍÀ» javapattern.info»çÀÌÆ® ±¸Ãà½Ã¿¡ ÀÌ¹Ì ´À²¼¾ú´Ù. ÀÌ¹Ì ¿¬ÀçÇÑ 
Mini-Spider Framework¿¡¼­´Â È­¸é±¸¼º¿¡ ´ëÇÑ ÅÛÇø´À» Á¶ÇÕÇÏ´Â serlvet component¸¦ µÎ¾î¼­
xml¿¡¼­ ÀоîµéÀÎ µ¥ÀÌÅÍ·Î layout.jsp¸¦ ±¸¼ºÇÑ ´ÙÀ½ »Ñ·ÁÁÖ°Ô²û ¸¸µé¾ú¾ú´Âµ¥ ±× ºÎÁ·ÇÑ ºÎºÐÀ»
struts¿¡ ä¿öÁá´ø °ÍÀÌ ¹Ù·Î tiles-frameworkÀÌ´Ù.

ÀÌ°ÍÀº 2002³â 1¿ù¿¡ ¾ÆÁÖ ¶È¶ÈÇÑ apache-contributorÀÎ Cedric Dumoulin¶õ »ç¶÷ÀÌ ÄÄÆ÷³ÍÆ® Çü´ë·Î
óÀ½ ¼Ò°³Çß°í, 2002³â 2¿ù¿¡ tomcat¿¡¼­ tag·Î »ç¿ëµÇ´ø °ÍÀ» struts 1.1¹öÁ¯ÀÇ °³¹ß ¸±¸®Áî¿¡
Æ÷ÇÔ½ÃÅ°±â·Î °áÁ¤µÇ¾ú¾ú´Ù.
ÇöÀç´Â struts API¸¦ ºÃÀ»¶§ org.apache.struts.tiles ¹× org.apache.struts.tiles.taglib ÆÐÅ°Áö·Î
¿ä¾àµÇ¾î Áö°í ÀÖ´Ù.

´ë·« tiles°¡ °¡Áø ±â´ÉÀ» »ìÆ캸¸é ´ÙÀ½°ú °°´Ù.

  1. ¿ì¼± tiles¿¡ ´ëÇÑ ½Äº°À» ÇÑÈÄ ±×°ÍÀ» ±â¼úÇÏ°í ´ç½ÅÀÇ È­¸éÇüÅ·ΠÁ¶¸³ÇÏ¿© »ç¿ëÇÒ¼ö ÀÖ´Ù.
  2. ÀÌ¹Ì ±â¼úµÈ ·¹À̾ƿô¿¡ ´ëÇÏ¿© Àç»ç¿ë ¹× ÅÛÇø´À» °ü¸®ÇÒ ¼ö ÀÖ´Ù.
  3. È­¸é´Ü¿¡ ´ëÇÑ tilesÀÇ ¼±¾ð ¹× Á¤ÀǸ¦ ÇÒ ¼ö ÀÖÀ¸¸ç, ÆĶó¹ÌÅÍ °ªÀ» ÅëÇÏ¿© struts¿¡¼­ ³Ñ¾î¿Â °ªÀ» º¯°æ½Ãų ¼ö ÀÖ´Ù.
  4. »õ·Î¿î ·¹À̾ƿô »ý¼º ¹× °´Ã¼ÁöÇâÀÇ »ó¼Ó°³³äÀ» ÅëÇÏ¿© ºÒÇÊ¿äÇÑ ¼±¾ðÀ» ÇÊ¿ä¾ø°Ô ¸¸µç´Ù.
  5. ±¹Á¦È­¿¡ ´ëÇÑ tiles¸¦ »ý¼ºÇÏ¿© ó¸®ÇÒ ¼ö ÀÖ´Ù.
¢º Tiles ¼³Á¤ ±âº»ÀÇ Struts1.0À» ÀÌ¿ëÇÏ°Ô µÈ´Ù¸é tiles¿¡ ´ëÇÑ jarÆÄÀÏÀ» apache foundation¿¡¼­ ´Ù¿î·Îµå ¹Þ¾Æ ´ç¿¬È÷ WEB-INFÀÇ lib¿¡ º¹»çÇÏ¿© »ç¿ëÇÏ°Ô µÇ´Âµ¥ ´õ ÇÊ¿äÇÑ °ÍÀ» taglib¿¡ °ü·ÃÇÑ ¼³Á¤À» ÀÌ¿ëÇÏ¿© ó¸®ÇØ¾ß ÇϹǷΠweb.xml¿¡ ´ëÇÏ¿© uriÁ¤º¸¸¦ ¼³Á¤ÇÏ´øÁö ¾Æ´Ï¸é ¸¸µé¾îÁú ÆäÀÌÁö¿¡ ´ëÇÏ¿© ÀûÀýÇÑ ¼³Á¤À» ÇØÁÖ¾î¾ß ÇÔÀº ¹°·ÐÀ̸ç, À̱ÛÀ» Àд ´ç½Å~! ´ç¿¬È÷ ÇÒÁÙ ¾Ë°í ÀÖÀ¸¸®¶ó ³î»õ´Â ¹Ï´Â´Ù. ¢º ù¹ø° ±âº» ·¹À̾ƿô¿¡ ´ëÇÑ ¼³Á¤ ¿ì¼± °¡Àå ±âº»ÀûÀ¸·Î ¿ì¸®°¡ ¸¹ÀÌ º¼¼ö ÀÖ´Â »ùÇà ȭ¸é¿¡ ´ëÇÏ¿© »ìÆ캸µµ·Ï ÇÏÀÚ. ÇÁ·¹ÀÓÀ» ÁÁ¾ÆÇÏ´Â »ç¶÷µµ ÀÖ°ÚÁö¸¸ ³î»õ~ ½º½º·Î´Â single frame¾È¿¡ layoutÀ» ³ª´©¾î ÇØ´ç jsp¸¸ include¸¦ ÇÏ´Â °ÍÀ» ¼±È£ÇÏ°í ÀÖ´Ù. ±×·¸°Ô ÇÏ´Â °Ô ÈξÀ Çڵ鸵Çϱ⠽±´Ù°í »ý°¢Çϴµ¥ ¹¹ °³Àθ¶´Ù ÃëÇâÀÌ Æ²¸®¹Ç·Î ¾Æ¹«·¸°Ô³ª »ç¿ëÇÏ°í ½ÍÀºµ¥·Î ¾²¸é µÇ°Ú´Ù. ¿ì¼± ¾Æ·¡¿Í °°Àº ÇüÅÂÀÇ È­¸é ·¹À̾ƿôÀÌ ³ª¿Ô´Ù°í °¡Á¤À» ÇÏÀÚ.
header
menu body
footer
java.sun.com¿¡¼­ »ùÇ÷Πº¸¿©ÁÖ´Â petstore¿¡¼­´Â À§¿Í °°Àº ÇüŸ¦ Á¶ÇÕÇÏ´Â À¥ÆäÀÌÁöÁ¶¸³¿ë servlet component¸¦ µÎ¾î layoutÀ¸·Î ¼³Á¤µÈ ÆäÀÌÁö·Î ¹«Á¶°Ç forwarding½ÃÅ°¸é °Å±â¼­ µ¥ÀÌÅ͸¦ ·ÎµùµÈ xmlÁ¤º¸¸¦ ÀÌ¿ëÇÏ¿© °¢ ¿µ¿ª¿¡ µé¾î°¡¾ß ÇÒ ÆäÀÌÁö¿¡ ´ëÇÑ ºÎºÐÀ» include½ÃÅ°´Â ÇüŸ¦ ÃëÇÏ°í ÀÖ´Ù. À§¿¡¼­ À̾߱âÇÏ´Â º¸ÅëÀÇ header¿¡´Â ±â¾÷ÀÇ ·Î°í ¶Ç´Â ´ëºÐ·ù¸Þ´ºµéÀÌ µé¾î°¡°Ô µÇ¸ç, °ÅÀÇ ¹Ù²îÁö ¾Ê´Â ³»¿ëÀÌ ´ëºÎºÐÀ̸ç, ¿ÞÂÊÆíÀÇ menuÆÄÆ®, ¾Æ·¡ÂÊÀÇ footer(º¸Åë copyright) ¶ÇÇÑ ¹Ù²îÁö ¾Ê´Â ºÎºÐÀÌ¶ó±¸ »ý°¢Çصµ µÈ´Ù. ÆäÀÌÁö¸¦ Á¶¸³ÇÏ´Â µ¥ À־ ÇÑ°¡Áö ÁÖÀÇÇØ¾ß ÇÒ Á¡Àº ¸µÅ©ºÎºÐ¿¡ °ü·ÃÇÑ ¼³Á¤Àε¥ ¸¸¾à strutsÀÇ taglib¸¦ »ç¿ëÇÏ°Ô µÇÁö ¾Ê´Â´Ù¸é À̹ÌÁöµîÀÇ °æ·Î¸¦ ÀÔ·ÂÇÏ´Â µ¥ À־ <img src='<%= request.getContextPath() %>/images/xxx.gif>ÀÇ ÇüÅ·Πó¸®ÇØ¾ß Çϸç struts taglib¸¦ »ç¿ëÇϸé <html:img src="/images/xxx.gif" />ÀÇ ÇüÅ·Π¸¸µé¾îÁà¾ß ÇÑ´Ù. »ç½Ç À§ÀÇ layout¿¡¼­ °¡Àå ¸¹ÀÌ º¯µ¿µÇ´Â ºÎºÐÀº ´ç¿¬È÷ bodyºÎºÐÀÌ µÉ °ÍÀÌ´Ù. ÀÚ ±×·¯¸é ÀÌÁ¦ºÎÅÍ º»°ÝÀûÀÎ tilesÀÇ configure¸¦ ÀÛ¼ºÇغ¸µµ·Ï ÇÏÀÚ. ¢º Page¾È¿¡¼­ÀÇ TilesÁ¶¸³ ¿ì¼± struts¿¡¼­ È­¸éÀ» Á¶¸³ÇÒ ¼ö ÀÖ´Â 2°¡Áö¹æ¹ýÀÌ ÀÖ´Ù°í À§¿¡¼­ ¸»Çߴµ¥ templateÆÐÅ°Áö¸¦ ÀÌ¿ëÇÑ È­¸éÁ¶¸³ÀÌ ±× ù¹ø°ÀÌ°í tiles¸¦ ÀÌ¿ëÇÑ ¹æ¹ýÀÌ µÎ¹ø°¶ó°í ¸»Çß´Ù. - Tiles¼±¾ð
<%@taglib uri="/WEB-INF/tiles.tld" prefix="tiles" %> <tiles:insert page="/basic/myLayout.jsp" flush="true"> <tiles:put name="title"value="My first page" /> <tiles:put name="header" value="/tutorial/common/header.jsp" /> <tiles:put name="footer" value="/tutorial/common/footer.jsp" /> <tiles:put name="menu" value="/tutorial/basic/menu.jsp" /> <tiles:put name="body" value="/tutorial/basic/helloBody.jsp" /> span lang=EN-US></tiles:insert>
- Strus template pacakage¼±¾ð
<%@taglib uri="/WEB-INF/tiles.tld" prefix="template" %> <template:insert page="/basic/myLayout.jsp" flush="true"> <template:put name="title"value="My first page" /> <template:put name="header" value="/tutorial/common/header.jsp"/> <template:put name="footer" value="/tutorial/common/footer.jsp"/> <template:put name="menu" value="/tutorial/basic/menu.jsp"/> <template:put name="body" value="/tutorial/basic/helloBody.jsp"/> </template:insert>
À§ÀÇ Äڵ忡¼­ º¸¿©ÁÖ´Â °ÍÀº tiles.tld¸¦ ¼±¾ðÇÏ¿© put¿¡ ´ëÇÑ tag¸¦ ¸¸³µÀ» °æ¿ì name¿¡ ÇØ´çÇÏ´Â layoutÆäÀÌÁöÀÇ °¢ ¿µ¿ª¿¡ value°ªµéÀÌ "/tutorial/common/header.jsp"ÀÇ ÇüÅ·Π»ðÀԵǵµ·Ï ¼±¾ðÇÑ °ÍÀÌ´Ù. ±×·¸´Ù¸é ÀÌÁ¦ main layout¿¡ °ü·ÃÇÑ È­¸é±¸¼ºÀÇ html template¸¦ ¸ÕÀú ÀÛ¼ºÇغ¸µµ·Ï ÇÏÀÚ. ÀÌ°ÍÀº À¥µðÀÚÀ̳ʿ͵µ »óÀǸ¦ ÇÏ¿©¾ß ÇÒ °ÍÀ̸ç, Àüü ÇÁ·ÎÁ§Æ®¿¡¼­ È­¸é¿¡ ´ëÇÑ ÇÁ·ÎÅäŸÀÌÇÎÀÌ ÀÌ·ç¾îÁø ½ÃÁ¡¿¡¼­ ±¸¼ºÀÌ µÇ¾îµµ ¹«¹æÇÒ °ÍÀÌ´Ù.

<table border='1' width='300'>
<tr>
    <td colspan='2' bgcolor='#CCFFFF'>header
    </td>
</tr>
<tr height='200'>
    <td width='60' bgcolor='yellow'>menu
    </td>
    <td bgcolor='#CCFF66'>body</td>
</tr>
<tr>
    <td colspan='2' bgcolor='#CCFFFF'>footer
    </td>
</tr>
</table>
À§ÀÇ htmlÇüÅÂ¿Í ÀÌ¹Ì º» ±×¸²Ã³·³ ¼³Á¤À» Çß¾ú´Âµ¥ À§ÀÇ °¢ ¿µ¿ª¿¡ ºÙÀÏ ¼ö ÀÖ´Â tiles¸¦ ¼±¾ðÇØ º¸µµ·Ï ÇÏÀÚ. ¿ì¼± ¾Æ·¡¿Í °°ÀÌ tiles taglib¸¦ »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ¸ÕÀú prefix¿¡ ´ëÇÑ ¼±¾ðÀ» ÇÑÈÄ <%@ taglib uri="/WEB-INF/tiles.tld" prefix="tiles" %> ¾Æ·¡¿Í °°ÀÌ °¢°¢ÀÇ ¿µ¿ª¿¡ µé¾î°¥ attributeµé¿¡ ´ëÇÑ ¼±¾ðÀ» Çϵµ·Ï ÇÑ´Ù. <tiles:insert attribute=¡±body¡± flush=¡±true¡± /> ÃÖÁ¾ÀûÀ¸·Î taglib°¡ Æ÷ÇÔµÇ¾î º¯°æµÈ html source¸¦ º¸°Ô µÇ¸é

<TABLE width="100%">
  <TR>
    <TD colspan="2"><tiles:insert attribute="header" /></TD></TR>
  <TR>
    <TD width="120"><tiles:insert attribute="menu" /></TD>
    <TD><tiles:insert attribute="body" /></TD></TR>
  <TR>
    <TD colspan="2"><tiles:insert attribute="footer" /></TD>
  </TR>
</TABLE>
À§¿Í °°ÀÌ ¼±¾ðµÈ´Ù¸é °¢°¢ÀÇ ¿µ¿ª¿¡ ±× ´ëÇ¥ À̸§À» ºÙÀÓÀ¸·Î¼­ tiles:insert¿¡ ´ëÇÑ tag library°¡ È£ÃâµÇ¸é ÇØ´ç Ŭ·¡½º°¡ config¿¡¼­ ÀÌ¹Ì ¼³Á¤µÈ value¸¦ ÀÌ¿ëÇÏ¿© Æ÷ÇÔµÈ jspÆÄÀÏÀ» °¢ ¿µ¿ª¿¡ include½ÃÅ°´Â ¹æ¹ýÀ» »ç¿ëÇÏ°í ÀÖ´Ù. È­¸é Á¶¸³¿¡ ´ëÇÑ ÀÌ·¯ÇÑ ±âº» ¾ÆÅ°ÅØÃÄ°¡ ±Ã±ÝÇÏ´Ù¸é ¸ÕÀú ¾Æ·¡ÀÇ ¾ÆƼŬÀ» ÀÐÀº ÈÄ ´Ù½Ã º¸¸é µÇ°Ú´Ù. Web Application Framework°³¹ß¹æ¹ý(3)-View page Composing ¢º Page¾È¿¡¼­ÀÇ html page title ¼¼Æà ºê¶ó¿ìÁ®ÀÇ Å¸ÀÌƲ¹Ù¿¡ º¸¿©Á®¾ß ÇÒ ³»¿ëµµ µ¿ÀûÀ¸·Î º¯°æÀ» °¡ÇÒ ¼ö Àִµ¥ ÀÌ°Í ¶ÇÇÑ tiles°¡ Á¦°øÇÏ´Â title tag¸¦ ÀÌ¿ëÇÏ¿© ó¸®Çϸé config¿¡ ¼³Á¤µÈ ³»¿ëÀ» µ¿ÀûÀ¸·Î °¡Á® ¿Ã¼ö Àִ Ư¡À» °¡Áö°í ÀÖ´Ù.

<head>
    <title><tiles:getAsString name="title"/></title>
</head>
¢º ÃÖÁ¾ ÆäÀÌÁö ±¸¼º À§¿Í °°ÀÌ ±¸¼ºµÇ¾î ¿Ï¼ºµÈ ÅÛÇø´ ÆäÀÌÁö´Â ¾Æ·¡¿Í °°´Ù.

<%@ taglib uri="/WEB-INF/tiles.tld" prefix="tiles" %>
<html>
<head>
    <title><tiles:getAsString name="title"/></title>
</head>
<body>
<TABLE width="100%">
  <TR>
    <TD colspan="2"><tiles:insert attribute="header" /></TD></TR>
  <TR>
    <TD width="120"><tiles:insert attribute="menu" /></TD>
    <TD><tiles:insert attribute="body" /></TD></TR>
  <TR>
    <TD colspan="2"><tiles:insert attribute="footer" /></TD>
  </TR>
</TABLE>
</body>
</html>
ÀÚ, ÀÌÁ¦ È­¸éÀ» ±¸¼ºÇÒ ¼ö ÀÖ´Â layoutÆäÀÌÁö°¡ Á¶¸³ÀÌ µÇ¾ú´Ù. À§ÀÇ ÆäÀÌÁöÀÇ À̸§À» "/layout/classicLayout.jsp"¶ó°í Á¤ÇÏÀÚ. ÀÌÁ¦ ±×°÷¿¡ ³»¿ëÀ» ÀÔ·ÂÇÒ ¼ö ÀÖ´Â µÎ°¡Áö ¹æ¹ýÀÌ Á¸ÀçÇÏ°Ô µÇ´Âµ¥ ±× µÎ°¡Áö ¹æ¹ý ¸ðµÎ¸¦ Çѹø »ìÆ캸µµ·Ï ÇÏÀÚ. ¢º °¡Àå ±âº»ÀûÀÎ template»ðÀÔ¹æ¹ý ¿ì¼±Àº layoutÆäÀÌÁö°¡ Á¤ÀǵǾúÀ» ¶§ ±× ÆäÀÌÁöÀÇ ½ÇÁ¦ º¸¿©Áö°Ô °¢°¢ÀÇ ÆäÀÌÁö°¡ ¾î¶²°ÍÀÎÁö¸¦ ¾Ë·ÁÁÖ¾î »ðÀÔÇϵµ·Ï ÇÏ°Ô ÇÏ´Â ¹æ¹ýÀÌ´Ù. À§¿¡¼­ ÅÛÇø´ ÆÄÀÏÀÇ À̸§À» classicLayout.jsp¶ó°í Á¤ÀÇÇß°í, ¾Æ·¡ÀÇ ÆÄÀÏÀ̸§Àº ½ÇÁ¦ ÃÖÃÊ¿äûÀÌ µé¾î¿Ô´Ù´Â °¡Á¤À¸·Î index.jsp¶ó°í ÇÏÀÚ.

<%@ taglib uri="/WEB-INF/tiles.tld" prefix="tiles" %>
<tiles:insert page="/layout/classicLayout.jsp" flush="true">
  <tiles:put name="title"  value="My first page" />
  <tiles:put name="header" value="/tutorial/common/header.jsp" />
  <tiles:put name="footer" value="/tutorial/common/footer.jsp" />
  <tiles:put name="menu"   value="/tutorial/basic/menu.jsp" />
  <tiles:put name="body"   value="/tutorial/basic/helloBody.jsp" />
</tiles:insert>
À§ÀÇ ÇÁ·Î±×·¥Ã³·³ È£ÃâÀ» ÇÏ°Ô µÇ¸é tilesÀÇ ±âº»µ¿ÀÛÀº /layout/classicLayout.jsp¸¦ ÅÛÇø´À¸·Î ±âº»À¸·Î ÇÏ¿© óÀ½¿¡ ¼³Á¤µÈ attribute¿¡ ÇØ´çÇÏ´Â put name="title"ÀÇ °ªÀÎ value="My first page"¸¦ classicLayoutÀ¸·Î Àü´ÞÇÏ¿© titleÀ» ¼³Á¤ÇÏ°í, includeµÇ¾îÁú ¼ö ÀÖ´Â ÆäÀÌÁö´Â tiles:put name="header" value="/tutorial/common/header.jsp"ó·³ header¿µ¿ª¿¡ »Ñ·ÁÁú °ªÀÌ /tutorial/common/header.jspÀÓÀ» ¼±¾ðÇÏ¿© ³Ñ±æ ¼ö°¡ ÀÖ´Ù. ±×·±µ¥~~~!!! À§ÀÇ ¹æ¹ýÀÌ ÆíÇÑ°¡? ¸¸¾à layoutÀ» ÀÌ¿ëÇÑ ÆäÀÌÁö°¡ ÇÁ·ÎÁ§Æ® ±Ô¸ð¿¡ µû¶ó¼­ ¼ö¹éº»ÀÌ µÉÅÙµ¥ header, menu, footerÀÇ °æ¿ìó·³ °°Àº ÆäÀÌÁö°¡ »ðÀԵȴٰí ÇßÀ» °æ¿ì ºÒÇÊ¿äÇÑ copy-paste°¡ ³ªÅ¸³ª°Ô µÇ´Â °Ç ºÒÀ» º¸µí »·ÇÑ ÀÏÀÌ´Ù. ±×·¸´Ù¸é Àç»ç¿ë¿¡ ´ëÇÑ È¿¿ë¼ºÀ» ±Ø´ëÈ­½ÃÅ°±â À§ÇÏ¿© ¾î¶² ¹æ¹ýÀ» »ç¿ëÇÏ¸é µÉ±î? Tile¿¡¼­´Â xmlÆÄÀÏÀ» ÀÌ¿ëÇÏ¿© layoutÀ» definitionÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀ» »ç¿ëÇÔÀ¸·Î¼­ °°Àº ºÎºÐ¿¡ ´ëÇÑ ³»¿ëÀ» Àç»ç¿ëÇÒ ¼ö ÀÖ´Â È¿°úÀûÀÎ ¹æ¹ýÀ» Á¦°øÇÑ´Ù. ÆäÀÌÁö¸¦ listÇüÅ·Π°ü¸®ÇÏ¿© °¢°¢ÀÇ °æ¿ì¿¡ ´ëÇÑ ¼­·Î ´Ù¸¥ ÆäÀÌÁö¸¦ º¸¿©ÁÙ ¼ö ÀÖ´Â ¹æ¹ýµµ Á¸ÀçÇÏÁö¸¸ ±×°Ç °¢ÀÚ ¾Ë¾Æ¼­ °øºÎÇϱ⠹ٶõ´Ù. ¢º DefinitionÀÇ ¼³Á¤ DefinitionÆÄÀÏÀ» ¼³Á¤ÇßÀ» °æ¿ì ¾ò¾î³¾ ¼ö ÀÖ´Â È¿°ú´Â ´ÙÀ½°ú °°´Ù.
  1. ÆäÀÌÁö¼±¾ð¿¡ ´ëÇÑ Áß¾ÓÁýÁßÈ­¸¦ °¡´ÉÇÏ°Ô ÇÑ´Ù
  2. °°Àº ÆäÀÌÁö¸¦ °è¼Ó ¼±¾ðÇØ¾ß ÇÏ´Â ºÒÇÊ¿äÇÔÀ» »ó¼ÓÀ¸·Î¼­ Á¦°ÅÇÑ´Ù.
  3. ÆĶó¹ÌÅͷμ­ ÆäÀÌÁö¸¦ È£ÃâÇØ¾ß ÇÏ´Â °ÍÀ» ÇÇÇÑ´Ù.
  4. struts-configÆÄÀÏ¿¡ forward¿¡ ´ëÇÑ À̸§À¸·Î Á¤ÀÇÇÒ ¼ö ÀÖ´Ù.
  5. definition attribute¿¡ ´ëÇÑ ¿À¹ö·ÎµùÀÌ °¡´ÉÇÏ´Ù.
  6. ¸ÖƼä³Î ¹× ±¹Á¦È­¿¡ ´ëÇÑ Áö¿øÀÌ °¡´ÉÇØÁø´Ù.
Struts1.1¿¡¼­´Â strut-config.xmlÆÄÀÏó·³ tiles¿¡ ´ëÇÑ ±âº»·ÎµùÀÌ °¡´ÉÇϵµ·Ï ±¸¼ºµÇ¾îÁ® Àִµ¥ web.xmlÆÄÀÏÀÇ servlet-mapping¿¡¼­ org.apache.struts.tiles.ActionComponentServletºÎºÐÀÇ definitions-config¸¦ ÀÌ¿ëÇÏ¿© ½ÇÁ¦ definitionÆÄÀÏÀÇ À§Ä¡¸¦ ÁöÁ¤ÇÏ¿© ÁÖ¸é °¡´ÉÇÏ´Ù. À§ÀÇ ·ÎµùºÎºÐÀÌ µé¾î°£ javapattern.info»çÀÌÆ®ÀÇ web.xmlÀ» Àá±ñ º¸ÀÚ.

<!-- Action Servlet Configuration -->
  <servlet>
	    <servlet-name>action</servlet-name>
	    <servlet-class>org.apache.struts.tiles.ActionComponentServlet</servlet-class>
	    <init-param>
	      <param-name>definitions-config</param-name>
	      <param-value>/WEB-INF/conf/page-definitions.xml</param-value>
	    </init-param>
	    <init-param>
	      <param-name>definitions-debug</param-name>
	      <param-value>1</param-value>
	    </init-param>
	    <init-param>
	      <param-name>application</param-name>
	      <param-value>com.javapattern.resource.ApplicationResources</param-value>
	    </init-param>
	    <init-param>
	      <param-name>config</param-name>
	      <param-value>/WEB-INF/conf/struts-config.xml</param-value>
	    </init-param>
	    <init-param>
	      <param-name>debug</param-name>
	      <param-value>2</param-value>
	    </init-param>
	    <init-param>
	      <param-name>detail</param-name>
	      <param-value>2</param-value>
	    </init-param>
	    <init-param>
	      <param-name>validate</param-name>
	      <param-value>true</param-value>
	    </init-param>
	    <load-on-startup>2</load-on-startup>
  </servlet>
À§ÀÇ ¼³Á¤¿¡¼­´Â definition-config¸¦ WEB-INF/conf/page-definition.xml ÆÄÀÏ·Î ÁöÁ¤À» ÇßÀ¸¸ç »ùÇÃÆÄÀÏÀ» ¾Æ·¡¿Í °°ÀÌ ¼³Á¤ÇÒ ¼ö ÀÖ´Ù.

<!-- html definition Mappings  -->
<page-definitions>
  <!-- Definition description  -->
    <definition name="site.mainLayout" path="/tutorial/layout/classicLayout.jsp">
          <put name="title"  value="My First Definition Page" />
          <put name="header" value="/tutorial/common/header.jsp" />
          <put name="footer" value="/tutorial/common/footer.jsp" />
          <put name="menu"   value="/tutorial/common/menu.jsp" />
          <put name="body"   value="/tutorial/basic/hello.jsp" />
    </definition>
</page-definitions>
À§¿¡¼­ ¼±¾ðÇÑ ¹æ¹ýÀº ÀÌ¹Ì »ìÆ캸¾Ò´ø classicÇÑ ÇüÅÂÀÇ webpage¿¡ includeÇÏ´Â ¹æ½Ä°ú º°´Ü ´Ù¸£Áö°¡ ¾ÊÁö¸¸ °¡Àå Å« Ư¡Àº ÇØ´ç definition nameÀ» Á¤ÀÇÇÏ¿© °´Ã¼Ã³·³ È°¿ëÇÒ¼ö ÀÖ´Ù´Â °ÍÀÌ´Ù. Áï »óÀ§ definitionÀ» ¸ÕÀú Á¤ÀÇÇÑ ÈÄ ¾Æ·¡¿Í °°ÀÌ »ó¼ÓÀ» ¹Þ¾Æ¼­ »ç¿ëÀÌ °¡´ÉÇÏ´Ù´Â ¾ê±â´Ù

  <definition name="site.index.page" extends="site.mainLayout" >
	  <put name="title"  value="Tiles Blank Site Index" />
	  <put name="body"   value="/common/content.jsp" />
  </definition>
¼³Á¤µÈ ³»¿ëÀ» º¸°Ô µÇ¸é definitionÀÇ À̸§Àº site.index.page¶ó°í ÇÏ¿© site.mainLayoutÀ» »ó¼Ó¹Þ¾Æ ó¸®ÇÏ°Ô µÇ´Âµ¥ ÀÚ¹ÙÀÇ °´Ã¼ÁöÇâ°ú °°Àº °³³äÀÌ¶ó º¸¸é µÈ´Ù. Áï ½ÇÁ¦ site.index.page¸¦ È£ÃâÇßÀ» °æ¿ì ³ª¸ÓÁö Á¤ÀÇµÈ ÆäÀÌÁö°¡ ¾øÀÌ title, body¸¸À» Á¤ÀÇÇÏ°í ÀÖÀ¸¹Ç·Î header, footer, menu´Â ºÎ¸ðÀÎ site.mainLayoutÀÇ ¼Ó¼ºÀ» »ç¿ëÇÏ°Ô µÇ°í body¿Í titleÀº ½ÇÁ¦ ÀڽݴüÀÎ site.index.page definitionÀ» »ç¿ëÇÏ°Ô µÈ´Ù¶ó´Â °ÍÀÌ´Ù. ±×·¸´Ù¸é ÀúÀ§¿¡ ¼³Á¤µÈ definitionÀ» ¾î¶»°Ô ¿ì¸®°¡ º¸¿©Áö°ÔÇÒ templateÆÄÀÏ¿¡ Æ÷ÇÔ½Ãų°ÍÀΰ¡? ±× ¼³Á¤¹æ¹ýÀº ¾Æ·¡¿Í °°´Ù.

<%@ taglib uri="/WEB-INF/tiles.tld" prefix="tiles" %>
<tiles:insert definition="site.index.page" flush="true" />
À§ÀÇ ÆÄÀÏÀº www.javapattern.infoÀÇ index.jspÆÄÀÏÀÇ ¼³Á¤¿¡ »ç¿ëµÈ ÇüÅÂÀÌ´Ù. »ç½Ç ¸Ó¸®ÅëÀ» µ¹·Á¼­ ´Ù¸¥ Á¶ÀÛÀ» Á» Çؼ­ ¼³Á¤À» ÆíÇÏ°Ô ÇßÁö¸¸ ±âÃʳ»¿ëÀº º°¹Ý ´Ù¸¦ °ÍÀÌ ¾ø´Ù. ¢º Conclusion °£´ÜÇÏ°Ô tiles¿¡ ´ëÇÏ¿© º¸¾ÒÀ¸¸ç, ÇØ´ç ¹®¼­´Â strutsÀÇ tiles part¿¡ Æ÷ÇÔµÇ¾î ¼³¸íÀÌ ¾ÆÁÖ ÀÚ¼¼ÇÏ°Ô ³ª¿ÍÀÖ´Â ³»¿ëÀÌ´Ù. ÀÌ ±ÛÀ» Àд °Í¿¡¸¸ ³¡³»Áö ¸»°í, Á÷Á¢ »ùÇÃÇϳª¸¦ ¸¸µé¾îº¸¸é¼­ ¾î¶»°Ô Àû¿ë½Ãų ¼ö ÀÖÀ»°ÍÀΰ¡¸¦ »ý°¢Çغ¸¸é ¾ÆÁÖ ´Ù¾çÇÏ°Ô Ã³¸®ÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀÌ °è¼Ó ²¿¸®¿¡ ²¿¸®¸¦ ¹°°Ô µÉ°ÍÀ̶ó »ý°¢ÇÑ´Ù. ³î»õ~µµ ÀÌ¹Ì ÀÌ·¯ÇÑ ³»¿ëÀº 2001³â ¸»¿¡ petstore¸¦ ºÐ¼®Çϸ鼭 spider¸¦ ¸¸µé¶§ Àû¿ëÀ» Çß¾ú´Âµ¥ ÀÌ·²ÁÙ ¾Ë¾ÒÀ¸¸ç apache contributor·Î ¸ÞÀÏÀ̳ª ÇÑÅë º¸³¾°É ±×·¨´Ù¶ó´Â »ý°¢ÀÌ ¸¹ÀÌ µç´Ù.. ^^ °ÇÅõ¸¦ º÷´Ï´Ù.~!
 
1
References
 
Copyright ¨Ï 2003 www.javapattern.info & www.jlook.com, an jLOOK co.,LTD