À̹ø ¾ÆƼŬÀº 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°¡ °¡Áø ±â´ÉÀ» »ìÆ캸¸é ´ÙÀ½°ú °°´Ù.
- ¿ì¼± tiles¿¡ ´ëÇÑ ½Äº°À» ÇÑÈÄ ±×°ÍÀ» ±â¼úÇÏ°í ´ç½ÅÀÇ È¸éÇüÅ·ΠÁ¶¸³ÇÏ¿© »ç¿ëÇÒ¼ö ÀÖ´Ù.
- ÀÌ¹Ì ±â¼úµÈ ·¹À̾ƿô¿¡ ´ëÇÏ¿© Àç»ç¿ë ¹× ÅÛÇø´À» °ü¸®ÇÒ ¼ö ÀÖ´Ù.
- ȸé´Ü¿¡ ´ëÇÑ tilesÀÇ ¼±¾ð ¹× Á¤ÀǸ¦ ÇÒ ¼ö ÀÖÀ¸¸ç, ÆĶó¹ÌÅÍ °ªÀ» ÅëÇÏ¿© struts¿¡¼
³Ñ¾î¿Â °ªÀ» º¯°æ½Ãų ¼ö ÀÖ´Ù.
- »õ·Î¿î ·¹À̾ƿô »ý¼º ¹× °´Ã¼ÁöÇâÀÇ »ó¼Ó°³³äÀ» ÅëÇÏ¿© ºÒÇÊ¿äÇÑ ¼±¾ðÀ» ÇÊ¿ä¾ø°Ô ¸¸µç´Ù.
- ±¹Á¦È¿¡ ´ëÇÑ tiles¸¦ »ý¼ºÇÏ¿© ó¸®ÇÒ ¼ö ÀÖ´Ù.
¢º Tiles ¼³Á¤
±âº»ÀÇ Struts1.0À» ÀÌ¿ëÇÏ°Ô µÈ´Ù¸é tiles¿¡ ´ëÇÑ jarÆÄÀÏÀ» apache foundation¿¡¼ ´Ù¿î·Îµå ¹Þ¾Æ
´ç¿¬È÷ WEB-INFÀÇ lib¿¡ º¹»çÇÏ¿© »ç¿ëÇÏ°Ô µÇ´Âµ¥ ´õ ÇÊ¿äÇÑ °ÍÀ» taglib¿¡ °ü·ÃÇÑ ¼³Á¤À»
ÀÌ¿ëÇÏ¿© ó¸®ÇØ¾ß ÇϹǷΠweb.xml¿¡ ´ëÇÏ¿© uriÁ¤º¸¸¦ ¼³Á¤ÇÏ´øÁö ¾Æ´Ï¸é ¸¸µé¾îÁú
ÆäÀÌÁö¿¡ ´ëÇÏ¿© ÀûÀýÇÑ ¼³Á¤À» ÇØÁÖ¾î¾ß ÇÔÀº ¹°·ÐÀ̸ç, À̱ÛÀ» Àд ´ç½Å~! ´ç¿¬È÷
ÇÒÁÙ ¾Ë°í ÀÖÀ¸¸®¶ó ³î»õ´Â ¹Ï´Â´Ù.
¢º ù¹ø° ±âº» ·¹À̾ƿô¿¡ ´ëÇÑ ¼³Á¤
¿ì¼± °¡Àå ±âº»ÀûÀ¸·Î ¿ì¸®°¡ ¸¹ÀÌ º¼¼ö ÀÖ´Â »ùÇà ȸ鿡 ´ëÇÏ¿© »ìÆ캸µµ·Ï ÇÏÀÚ.
ÇÁ·¹ÀÓÀ» ÁÁ¾ÆÇÏ´Â »ç¶÷µµ ÀÖ°ÚÁö¸¸ ³î»õ~ ½º½º·Î´Â single frame¾È¿¡ layoutÀ» ³ª´©¾î ÇØ´ç jsp¸¸
include¸¦ ÇÏ´Â °ÍÀ» ¼±È£ÇÏ°í ÀÖ´Ù. ±×·¸°Ô ÇÏ´Â °Ô ÈξÀ Çڵ鸵Çϱ⠽±´Ù°í »ý°¢Çϴµ¥
¹¹ °³Àθ¶´Ù ÃëÇâÀÌ Æ²¸®¹Ç·Î ¾Æ¹«·¸°Ô³ª »ç¿ëÇÏ°í ½ÍÀºµ¥·Î ¾²¸é µÇ°Ú´Ù.
¿ì¼± ¾Æ·¡¿Í °°Àº ÇüÅÂÀÇ È¸é ·¹À̾ƿôÀÌ ³ª¿Ô´Ù°í °¡Á¤À» ÇÏÀÚ.
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ÆÄÀÏÀ» ¼³Á¤ÇßÀ» °æ¿ì ¾ò¾î³¾ ¼ö ÀÖ´Â È¿°ú´Â ´ÙÀ½°ú °°´Ù.
- ÆäÀÌÁö¼±¾ð¿¡ ´ëÇÑ Áß¾ÓÁýÁßȸ¦ °¡´ÉÇÏ°Ô ÇÑ´Ù
- °°Àº ÆäÀÌÁö¸¦ °è¼Ó ¼±¾ðÇØ¾ß ÇÏ´Â ºÒÇÊ¿äÇÔÀ» »ó¼ÓÀ¸·Î¼ Á¦°ÅÇÑ´Ù.
- ÆĶó¹ÌÅͷμ ÆäÀÌÁö¸¦ È£ÃâÇØ¾ß ÇÏ´Â °ÍÀ» ÇÇÇÑ´Ù.
- struts-configÆÄÀÏ¿¡ forward¿¡ ´ëÇÑ À̸§À¸·Î Á¤ÀÇÇÒ ¼ö ÀÖ´Ù.
- definition attribute¿¡ ´ëÇÑ ¿À¹ö·ÎµùÀÌ °¡´ÉÇÏ´Ù.
- ¸ÖƼä³Î ¹× ±¹Á¦È¿¡ ´ëÇÑ Áö¿øÀÌ °¡´ÉÇØÁø´Ù.
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·Î ¸ÞÀÏÀ̳ª ÇÑÅë º¸³¾°É ±×·¨´Ù¶ó´Â »ý°¢ÀÌ ¸¹ÀÌ µç´Ù.. ^^
°ÇÅõ¸¦ º÷´Ï´Ù.~!
|