JSP ¾ÖÇø®ÄÉÀ̼ǿë MA ´Ü¼øÈÇϱâ
Mark
A. Kolb ¼ÒÇÁÆ®¿þ¾î ¿£Áö´Ï¾î 2003³â 2¿ù 11ÀÏ
JSP Standard Tag Library (JSTL)Àº ÀϹÝÀûÀÎ À¥ ¾ÖÇø®ÄÉÀ̼Ç
±â´É(¹Ýº¹(iteration)°ú Á¶°Ç, µ¥ÀÌÅÍ °ü¸® Æ÷¸Ë, XML Á¶ÀÛ, µ¥ÀÌÅͺ£À̽º ¾×¼¼½º)À» ±¸ÇöÇÏ´Â
Ä¿½ºÅÒ ÅÂ±× ¶óÀ̺귯¸® ¸ðÀ½ÀÌ´Ù. ¼ÒÇÁÆ®¿þ¾î ¿£Áö´Ï¾îÀÎ Mark KolbÀº JSTL ű×ÀÇ »ç¿ë¹æ¹ýÀ»
¼³¸íÇÑ´Ù. Ç¥ÇöÃþ(presentation layer)¿¡¼ ¼Ò½º Äڵ带 Á¦°ÅÇÏ¿© ¼ÒÇÁÆ®¿þ¾î °ü¸®¸¦ ´Ü¼øȽÃÅ°´Â
¹æ¹ýµµ ¼³¸íÇÑ´Ù. ÀÌ¿Ü¿¡µµ JSTLÀÇ ´Ü¼øÈµÈ Expression Language¿¡ ´ëÇÑ ¼³¸íµµ Æ÷ÇԵǾî
ÀÖ´Ù.
JavaServer Pages (JSP)´Â J2EE Ç÷§ÆûÀ» À§ÇÑ Ç¥ÁØ Ç¥Çö
·¹À̾î(presentation-layer) ÀÌ´Ù. JSP´Â ÆäÀÌÁö ÄÜÅÙÆ®¸¦ µ¿ÀûÀ¸·Î »ý¼ºÇÒ ¼ö ÀÖ´Â Àü»êÀ» ¼öÇà
ÇÒ ¼ö ÀÖ´Â ½ºÅ©¸³Æà ¿¤¸®¸ÕÆ®¿Í ¾×¼ÇÀ» Á¦°øÇÑ´Ù. ½ºÅ©¸³Æà ¿¤¸®¸ÕÆ®´Â ÇÁ·Î±×·¥ ¼Ò½º Äڵ尡 JSP Äڵ忡 Æ÷ÇÔµÉ
¼ö ÀÖµµ·Ï ÇÑ´Ù. ÆäÀÌÁö°¡ »ç¿ëÀÚ ¿äû¿¡ ´ëÇÑ ÀÀ´äÀ¸·Î ·»´õ¸µ µÉ ¶§ ½ÇÇàÇÒ ¸ñÀûÀÌ´Ù. ¾×¼Ç(actions)Àº
Àü»ê ÀÛµ¿À» JSP ÆäÀÌÁöÀÇ ÅÛÇø´ ÅؽºÆ®¸¦ ±¸¼ºÇÏ°í ÀÖ´Â HTML À̳ª XML°ú °ÅÀÇ Èí»çÇÏ°ÔÇϴ ű׷Î
ÀÎĸ½¶ÇÑ´Ù. JSP ½ºÆÑ¿¡ Ç¥ÁØÀ¸·Î Á¤ÀÇµÈ ¸î °¡ÁöÀÇ ¾×¼ÇµéÀÌ ÀÖ´Ù. ÇÏÁö¸¸ JSP 1.1 ºÎÅÍ °³¹ßÀÚµéÀº
Ä¿½ºÅÒ ÅÂ±× ¶óÀ̺귯¸® ÇüÅ·ΠÀڽŸ¸ÀÇ ¾×¼ÇµéÀ» ¸¸µé ¼ö ÀÖ´Ù.
JSP Standard Tag Library (JSTL)´Â JSP 1.2 Ä¿½ºÅÒ ÅÂ±× ¶óÀ̺귯¸® ¸ðÀ½À¸·Î¼
±¤¹üÀ§ÇÑ ¼¹öÃø ÀÚ¹Ù ¾ÖÇø®ÄÉÀ̼ǿ¡ ÀϹÝÀûÀ¸·Î ¾²ÀÌ´Â ±âº» ±â´ÉµéÀ» ±¸ÇöÇÑ´Ù. JSTLÀº µ¥ÀÌÅÍ Æ÷¸Ë, ¹Ýº¹
ÄÜÅÙÆ® ¶Ç´Â Á¶°Ç ÄÜÅÙÆ® °°Àº ÀüÇüÀûÀΠǥÇö ·¹À̾ À§ÇÑ Ç¥ÁØ ±¸ÇöÀ» Á¦°øÇϱ⠶§¹®¿¡, JSP ÀÛ¼ºÀÚµéÀÌ
¾ÖÇø®ÄÉÀÌ¼Ç °³¹ß¿¡ ÁýÁßÇϴµ¥ µµ¿òÀÌ µÈ´Ù.
¹°·Ð, ½ºÅ©¸³Æ²¸´, ÀͽºÇÁ·¹¼Ç, ¼±¾ð °°Àº JSP ½ºÅ©¸³Æà ¿¤¸®¸ÕÆ®¸¦ »ç¿ëÇϴ ŽºÅ©¸¦ ±¸ÇöÇÒ ¼ö ÀÖ´Ù.
¿¹¸¦ µé¾î Á¶°Ç ÄÜÅÙÆ®(conditional content)´Â ¼¼ °³ÀÇ ½ºÅ©¸³Æ²¸´(Listing 1ÀÇ ÇÏÀ̶óÀÌÆ®
ºÎºÐ)À» »ç¿ëÇÏ¿© ±¸ÇöµÉ ¼ö ÀÖ´Ù. ÆäÀÌÁö ³»¿¡ ÇÁ·Î±×·¥ ¼Ò½º Äڵ带 ÀÓº£µùÇÏ´Â °Í¿¡ ÀÇÁ¸Çϱ⠶§¹®¿¡ ½ºÅ©¸³ÆÃ
¿¤¸®¸ÕÆ®°¡ ¼ÒÇÁÆ®¿þ¾î °ü¸® ŽºÅ©¸¦ ¸Å¿ì º¹ÀâÇÏ°Ô ÇÏ´Â °æÇâÀÌÀÖ´õ¶óµµ JSP ÆäÀÌÁö´Â ±×µéÀ» »ç¿ëÇÑ´Ù.
Listing 1ÀÇ ½ºÅ©¸³Æ²¸´ ¿¹Á¦´Â ºê·¹À̽ºµéÀÇ ÀûÀýÇÑ ¸ÅĪ¿¡ ¸Å¿ì ÀÇÁ¸ÇÑ´Ù. Á¶°ÇÈµÈ ÄÜÅÙÆ® ³»¿¡ Ãß°¡
½ºÅ©¸³Æ²¸´À» ÁßøÇÏ´Â °ÍÀº ½ÅÅýº ¿¡·¯°¡ °©ÀÚ±â ÀϾ´Ù¸é ÆäÀÌÁö°¡ JSP ÄÜÅ×À̳ʿ¡ ÀÇÇØ ÄÄÆÄÀÏ µÉ ¶§ °á°ú
¿¡·¯ ¸Þ½ÃÁö¸¦ ÇÕ¸®ÈÇÏ´Â °ÍÀº µµÀüÀÌ µÉ ¼ö ÀÖ´Ù. Listing 1.
½ºÅ©¸³Æ²¸´À» ÅëÇØ Á¶°Ç ÄÜÅÙÆ® ±¸ÇöÇϱâ
<% if (user.getRole() == "member")) { %>
<p>Welcome, member!</p>
<% } else { %>
<p>Welcome, guest!</p>
<% } %>
|
±×¿Í °°Àº ÇÁ·Î±×·¥À» ÇØ°áÇϴµ¥¿¡´Â ÇÁ·Î±×·¡¹Ö °æÇèÀÌ ¸¹ÀÌ ÇÊ¿äÇÏ´Ù. JSP ÆäÀÌÁöÀÇ ¸¶Å©¾÷ÀÌ ÆäÀÌÁö
·¹À̾ƿô°ú ±×·¡ÇÈ µðÀÚÀο¡ Àͼ÷ÇÑ µðÀÚÀ̳ʿ¡ ÀÇÇØ °³¹ß ¹× °ü¸®µÇ´Âµ¥ ¹ÝÇØ ±×¿Í °°Àº ÆäÀÌÁö ³»ÀÇ ½ºÅ©¸³ÆÃ
¿¤¸®¸ÕÆ®´Â ¹®Á¦°¡ »ý±æ ¶§ ÇÁ·Î±×·¡¸Ó°¡ °³ÀÔÇؾßÇÑ´Ù. ÇϳªÀÇ ÆÄÀϾȿ¡ ÀÖ´Â Äڵ忡 ´ëÇÑ Ã¥ÀÓÀ» °øÀ¯ÇÏ´Â °ÍÀº
JSP ÆäÀÌÁöÀÇ °³¹ß, µð¹ö±ë, Çâ»óÀ» ¼º°¡½ÅÀÏ·Î ¸¸µç´Ù. JSTLÀº ÀϹÝÀûÀÎ ±â´ÉÀ» Ä¿½ºÅÒ ÅÂ±× ¶óÀ̺귯¸®ÀÇ
Ç¥ÁØ ¼¼Æ®·Î ÆÐŰ¡Ç߱⠶§¹®¿¡ JSP ÀÛ¼ºÀÚµéÀÌ ½ºÅ©¸³Æà ¿¤¸®¸ÕÆ®¿¡ ´ëÇÑ Çʿ並 ÁÙÀÌ°í °ü·ÃµÈ °ü¸® ºñ¿ëÀ» ÇÇÇÒ
¼ö ÀÖµµ·Ï ÇÑ´Ù.
JSTL
1.0 2002³â 6¿ù¿¡ ¸±¸®½ºµÈ JSTL 1.0Àº ³× °³ÀÇ Ä¿½ºÅÒ Å±×
¶óÀ̺귯¸®(core , format ,
xml , sql )¿Í µÎ °³ÀÇ ¹ü¿ë ÅÂ±× ¶óÀ̺귯¸®
¹ë¸®µ¥ÀÌÅÍ(ScriptFreeTLV &
PermittedTaglibsTLV )·Î ±¸¼ºµÇ¾î ÀÖ´Ù. core
ÅÂ±× ¶óÀ̺귯¸®´Â Ä¿½ºÅÒ ¾×¼ÇÀ» Á¦°øÇÏ¿© ¹üÀ§ º¯¼ö¸¦ ÅëÇØ µ¥ÀÌÅ͸¦ °ü¸®ÇÒ ¼ö ÀÖµµ·ÏÇϸç ÆäÀÌÁö ÄÜÅÙÆ®ÀÇ ¹Ýº¹°ú
Á¶°Çȸ¦ ¼öÇàÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù. ¶ÇÇÑ URL¿¡¼ »ý¼º ¹× ÀÛµ¿ÇÒ ¼ö Àִ ű׵µ Á¦°øÇÑ´Ù.
format ÅÂ±× ¶óÀ̺귯¸®´Â À̸§ÀÌ ½Ã»çÇÏ´Â ¹Ù¿Í °°ÀÌ µ¥ÀÌÅÍ Æ¯È÷ ¼ýÀÚ¿Í ³¯Â¥¸¦
Æ÷¸ËÇÏ´Â ¾×¼ÇÀ» Á¤ÀÇÇÑ´Ù. ±¹ÁöÈ µÈ ¸®¼Ò½º ¹øµéÀ» »ç¿ëÇÏ¿© JSP ÆäÀÌÁöÀÇ ±¹Á¦Èµµ Áö¿øÇÑ´Ù.
xml ¶óÀ̺귯¸®¿¡´Â XMLÀ» ÅëÇØ Ç¥ÇöµÈ µ¥ÀÌÅ͸¦ Á¶ÀÛÇÒ ¼ö ÀÖ´Â Å×±×°¡ Æ÷ÇԵǾî
ÀÖ´Ù. sql ¶óÀ̺귯¸®´Â °ü°èÇü µ¥ÀÌÅͺ£À̽º¸¦ Äõ¸®ÇÏ´Â ¾×¼ÇÀ» Á¤ÀÇÇÑ´Ù.
µÎ °³ÀÇ JSTL ÅÂ±× ¶óÀ̺귯¸® ¹ë¸®µ¥ÀÌÅÍ´Â °³¹ßÀÚµéÀÌ JSP ¾ÖÇø®ÄÉÀÌ¼Ç ³»¿¡¼ Ç¥ÁØÀ» ÄÚµùÇϵµ·Ï
ÇÑ´Ù. ScriptFreeTLV ¹ë¸®µ¥ÀÌÅ͸¦ ¼³Á¤ÇÏ¿© JSP ÆäÀÌÁö ³»¿¡ ÀÖ´Â ´Ù¾çÇÑ
½ºÅ©¸³Æà ¿¤¸®¸ÕÆ®(½ºÅ©¸³Æ²¸´, Ç¥Çö, ¼±¾ð)ÀÇ ´Ù¾çÇÑ À¯ÇüÀ» »ç¿ëÇÏ´Â °ÍÀ» ¸·´Â´Ù. ÀÌ¿Í ºñ½ÁÇÏ°Ô
PermittedTaglibsTLV ¹ë¸®µ¥ÀÌÅÍ´Â ¾ÖÇø®ÄÉÀ̼ÇÀÇ JSP ÆäÀÌÁöµé¿¡ ÀÇÇØ
¾×¼¼½ºµÈ Ä¿½ºÅÒ ÅÂ±× ¶óÀ̺귯¸®(JSTL ÅÂ±× ¶óÀ̺귯¸® Æ÷ÇÔ)À» Á¦ÇÑÇÑ´Ù.
JSTLÀº J2EE Ç÷§Æû¿¡ ÇÊ¿äÇÑ ÄÄÆ÷³ÍÆ®°¡ µÉ °ÍÀÌÁö¸¸ ÀûÀº ¼öÀÇ ¾ÖÇø®ÄÉÀÌ¼Ç ¼¹öµé¸¸ÀÌ À̸¦ Æ÷ÇÔÇÏ°í
ÀÖ´Â °ÍÀÌ Çö½ÇÀÌ´Ù. JSTL 1.0ÀÇ ·¹ÆÛ·±½º ±¸ÇöÀº Apache Software FoundationÀÇ
Jakarta Taglibs ÇÁ·ÎÁ§Æ®ÀÇ ÀϺημ »ç¿ëÇÒ ¼ö ÀÖ´Ù. (Âü°íÀÚ·á).
·¹ÆÛ·±½º ±¸Çö¿¡ ÀÖ´Â Ä¿½ºÅÒ ÅÂ±× ¶óÀ̺귯¸®´Â JSTL Áö¿øÀ» Ãß°¡Çϱâ À§ÇØ JSP 1.2¿Í Servlet
2.3 ÀÌ»ó ½ºÆÑÀ» Áö¿øÇÏ´Â ¸ðµç ¾ÖÇø®ÄÉÀÌ¼Ç ¼¹ö¿¡ ÅëÇÕµÉ ¼ö ÀÖ´Ù.
Expression
language JSP 1.2¿¡¼ JSP ¾×¼ÇÀÇ ¾ÖÆ®¸®ºäÆ®´Â Á¤Àû ij¸¯ÅÍ ½ºÆ®¸µÀ̳ª
ÀͽºÇÁ·¹¼ÇÀ» »ç¿ëÇÏ¿© ÁöÁ¤µÈ´Ù. ¿¹¸¦ µé¾î Listing 2ÀÇ °æ¿ì Á¤Àû °ªµéÀº
<jsp:setProperty> ¾×¼ÇÀÇ name °ú
property ¾ÖÆ®¸®ºäÆ®¸¦ À§ÇØ ÁöÁ¤µÈ´Ù. ¹Ý¸é ÀͽºÇÁ·¹¼ÇÀº ÀÌ°ÍÀÇ °ª ¾ÖÆ®¸®ºäÆ®¸¦
ÁöÁ¤Çϴµ¥ »ç¿ëµÈ´Ù. ÀÌ ¾×¼ÇÀº ¿äû ¸Å°³º¯¼öÀÇ ÇöÀç °ªÀ» À̸§ÀÌ ºÙ¿©Áø ºó ¼Ó¼ºÀ¸·Î ÇÒ´çÇÏ´Â È¿°ú¸¦ °®°í
ÀÖ´Ù. ÀÌ·¯ÇÑ ¹æ½ÄÀ¸·Î »ç¿ëµÈ ÀͽºÇÁ·¹¼ÇÀº request-time
attribute valuesÀ̶ó ÀÏÄþîÁö¸ç ¾ÖÆ®¸®ºäÆ® °ªÀ» µ¿ÀûÀ¸·Î ÁöÁ¤ÇϱâÀ§ÇÑ JSP ½ºÆÑ¿¡ ³»ÀåµÈ
À¯ÀÏÇÑ ¸ÞÄ¿´ÏÁòÀÌ´Ù. Listing 2. request-time
attribute valueÀ» °áÇÕÇÏ´Â JSP ¾×¼Ç
<jsp:setProperty name="user" property="timezonePref"
value='<%= request.getParameter("timezone") %>'/>
|
request-time attribute values°¡ ÀͽºÇÁ·¹¼ÇÀ» »ç¿ëÇÏ¿© ÁöÁ¤µÇ±â ¶§¹®¿¡ ´Ù¸¥ ½ºÅ©¸³ÆÃ
¿¤¸®¸ÕÆ®¿Í °°Àº ¼ÒÇÁÆ®¿þ¾î °ü¸® ¹®Á¦°¡ ÀϾ ¼ö ÀÖ´Ù. ÀÌ·± ÀÌÀ¯·Î ÀÎÇØ JSTL Ä¿½ºÅÒ Å±״ µ¿Àû
¾ÖÆ®¸®ºäÆ® °ªÀ» ÁöÁ¤Çϱâ À§ÇÑ ´ë¾È ¸ÞÄ¿´ÏÁòÀ» Áö¿øÇÑ´Ù. JSP ÀͽºÇÁ·¹¼ÇÀ» »ç¿ëÇÏ´Â °Í º¸´Ù JSTL ¾×¼Ç¿ë
¾ÖÆ®¸®ºäÆ® °ªÀÌ ´Ü¼øÈ µÈ expression
language (EL)¸¦ »ç¿ëÇÏ¿© ÁöÁ¤µÉ ¼ö ÀÖ´Ù. ELÀº JSP ÄÁÅ×À̳ʿ¡ ÀÖ´Â µ¥ÀÌÅ͸¦ °Ë»ö ¹×
Á¶ÀÛÇÒ ½Äº°ÀÚ, Á¢±ÙÀÚ, ¿¬»êÀÚ¸¦ Á¦°øÇÑ´Ù. ELÀº EcmaScript(Âü°íÀÚ·á)¿Í
XML Path Language (XPath)¿¡ ¾à°£ ÀÇÁ¸Çϱ⠶§¹®¿¡ ½ÅÅýº´Â ÆäÀÌÁö µðÀÚÀÌ³Ê¿Í ÇÁ·Î±×·¡¸Ó ¸ðµÎ
¿¡°Ô Àͼ÷ÇÏ´Ù. ELÀº °´Ã¼¿Í ¼Ó¼ºµéÀ» °Ë»öÇÏ¸é¼ °£´ÜÇÑ ÀÛµ¿À» ¼öÇàÇÑ´Ù. ÀÌ°ÍÀº ÇÁ·Î±×·¡¹Ö ¾ð¾îµµ ½ºÅ©¸³ÆÃ
¾ð¾îµµ ¾Æ´Ï´Ù. JSTL ÅÂ±×¿Í °áÇÕÇÏ¸é °£´ÜÇÏ°í Æí¸®ÇÑ Ç¥±â¸¦ »ç¿ëÇÏ¿© º¹ÀâÇÑ ÀÛµ¿ÀÌ Ç¥ÇöµÉ ¼ö ÀÖ´Ù. EL
ÀͽºÇÁ·¹¼ÇÀº ´Þ·¯ Ç¥½Ã($)¿Í Áß°ýÈ£ ({})¸¦ ¾Õ¿¡ ºÙ¿© »ç¿ëÇÏ¿© ¹üÀ§¸¦ Á¤ÇÑ´Ù.(Listing
3) Listing 3. JSTL ¾×¼Ç: EL ÀͽºÇÁ·¹¼Ç ¹üÀ§
ÁöÁ¤
<c:out value="${user.firstName}"/>
|
¿©·¯°³ÀÇ ÀͽºÇÁ·¹¼Çµé°ú Á¤Àû ÅؽºÆ®¸¦ °áÇÕÇÏ¿© ½ºÆ®¸µ ¿¬°áÀ» ÅëÇØ µ¿Àû ¾ÖÆ®¸®ºäÆ® °ªÀ» ¸¸µé ¼ö
ÀÖ´Ù.(Listing 4). °³º° ÀͽºÇÁ·¹¼ÇµéÀº ½Äº°ÀÚ, Á¢±ÙÀÚ, ¸®ÅÍ·², ¿¬»êÀÚ·Î ±¸¼ºµÇ¾î ÀÖ´Ù. ½Äº°ÀÚ´Â
µ¥ÀÌÅÍ ¼¾ÅÍ¿¡ ÀúÀåµÈ µ¥ÀÌÅÍ °´Ã¼¸¦ ÂüÁ¶Çϴµ¥ »ç¿ëµÈ´Ù. ELÀº 11 °³ÀÇ ½Äº°ÀÚ¸¦ º¸À¯ÇÏ°í ÀÖ´Ù. 11 °³ÀÇ
EL ³»Àå °´Ã¼¿¡ »óÀÀÇÏ´Â °ÍµéÀÌ´Ù. ´Ù¸¥ ¸ðµç ½Äº°ÀÚµéÀº ¹üÀ§ º¯¼ö¸¦ ÂüÁ¶ÇÏ´Â °ÍÀ¸·Î °£ÁֵȴÙ. Á¢±ÙÀÚ´Â
°´Ã¼ÀÇ ¼Ó¼º ¶Ç´Â Ä÷º¼ÇÀÇ ¿¤¸®¸ÕÆ®¸¦ °Ë»öÇϴµ¥ »ç¿ëµÈ´Ù. ¸®ÅÍ·²Àº °íÁ¤µÈ °ªµé(¼ýÀÚ, ¹®ÀÚ, ½ºÆ®¸µ, ºÎ¿ï,
null)À» ³ªÅ¸³½´Ù. ¿¬»êÀÚ´Â µ¥ÀÌÅÍ¿Í ¸®ÅÍ·²ÀÌ °áÇÕ ¹× ºñ±³µÉ ¼ö ÀÖµµ·Ï ÇÑ´Ù. Listing 4. Á¤Àû ÅؽºÆ®¿Í ¿©·¯ EL ÀͽºÇÁ·¹¼ÇÀ» °áÇÕÇÏ¿© µ¿Àû ¾ÖÆ®¸®ºäÆ®
°ª ÁöÁ¤Çϱâ
<c:out value="Hello ${user.firstName} ${user.lastName}"/>
|
¹üÀ§ º¯¼ö(Scoped
variables)
<jsp:useBean> ¾×¼ÇÀ»
ÅëÇÑ JSP ¿¡ÀÌÇǾÆÀÌ´Â µ¥ÀÌÅÍ°¡ ÀúÀåµÉ ¼ö ÀÖµµ·Ï Çϸç JSP ÄÁÅ×ÀÌ³Ê ³»¿¡ ³× °³ÀÇ ´Ù¸¥ ¹üÀ§¿¡¼ µ¥ÀÌÅÍ°¡
°Ë»öµÉ ¼ö ÀÖµµ·Ï ÇÑ´Ù. JSTLÀº ÀÌ·¯ÇÑ ¹üÀ§ ³»¿¡ °´Ã¼¸¦ ÇÒ´çÇÏ°í Á¦°ÅÇÒ Ãß°¡ ¾×¼ÇÀ» Á¦°øÇÑ´Ù. ´õ¿íÀÌ,
ELÀº ¹üÀ§ º¯¼ö °°Àº °´Ã¼µéÀ» °Ë»öÇÏ´Â ºôÆ®ÀÎ Áö¿øÀ» Á¦°øÇÑ´Ù. ƯÈ÷ ELÀÇ ³»Àå °´Ã¼ Áß Çϳª¶óµµ »óÀÀÇÏÁö
¾Ê´Â EL ÀͽºÇÁ·¹¼Ç¿¡ ÀÖ´Â ½Äº°ÀÚ´Â ³× °³ÀÇ JSP ½ºÄß Áß Çϳª¿¡ ÀúÀåµÈ °´Ã¼¸¦ ÂüÁ¶ÇÏ´Â °ÍÀ¸·Î ÀÚµ¿
°£ÁֵȴÙ:
- ÆäÀÌÁö ¹üÀ§
- ¿äû ¹üÀ§
- ¼¼¼Ç ¹üÀ§
- ¾ÖÇø®ÄÉÀÌ¼Ç ¹üÀ§
ÆäÀÌÁö ¹üÀ§¿¡ ÀúÀåµÈ °´Ã¼µéÀº ƯÁ¤ ¿äû¿¡ ´ëÇÑ ÆäÀÌÁö°¡ ÇÁ·Î¼¼½º µÇ´Â µ¿¾È °Ë»öµÉ ¼ö ÀÖ´Ù. ¿äû ¹üÀ§
³»¿¡ ÀúÀåµÈ °´Ã¼µéÀº ¿äû ÇÁ·Î¼¼½º¿¡ Âü¿©ÇÑ ¸ðµç ÆäÀÌÁöµéÀÌ ÇÁ·Î¼¼½º ÇÏ´Â µ¿¾È °Ë»öµÉ ¼ö ÀÖ´Ù. °´Ã¼°¡ ¼¼¼Ç
¹üÀ§¿¡ ÀúÀåµÇ¾îÀÖ´Ù¸é À¥ ¾ÖÇø®ÄÉÀ̼ǰúÀÇ ´ÜÀÏ ÀÎÅÍ·¢Æ®ºê ¼¼¼Ç µ¿¾È »ç¿ëÀÚ°¡ ¾×¼¼½º ÇÑ ÆäÀÌÁö·Î °Ë»öµÉ ¼ö
ÀÖ´Ù. À¥ ¾ÖÇø®ÄÉÀ̼ÇÀÌ ¾ð·Îµå(unload) µÉ ¶§ ±îÁö ¾ÖÇø®ÄÉÀÌ¼Ç ¹üÀ§¿¡ ÀúÀåµÈ °´Ã¼´Â ¸ðµç ÆäÀÌÁö¿¡¼
Á¢±Ù°¡´ÉÇÏ¸ç ¸ðµç »ç¿ëÀÚµéÀÌ Á¢±ÙÇÒ ¼ö ÀÖ´Ù.
ij¸¯ÅÍ ½ºÆ®¸µÀ» Èñ¸ÁÇÏ´Â ¹üÀ§¿¡ ÀÖ´Â °´Ã¼·Î ¸ÅÇÎÇÏ¿© ¹üÀ§¾È¿¡ °´Ã¼¸¦ ÀúÀåÇÒ ¼ö ÀÖ´Ù. ÀÌ·¯ÇÑ °æ¿ì¿¡´Â
°°Àº ij¸¯ÅÍ ½ºÆ®¸µÀ» Á¦°øÇÏ¿© ¹üÀ§¿¡¼ °´Ã¼¸¦ °Ë»öÇÒ ¼öµµ ÀÖ´Ù. ½ºÆ®¸µÀº ¹üÀ§ ¸ÅÇÎ Áß °Ë»öµÇ°í ¸ÅÇÎµÈ °´Ã¼´Â
¸®ÅϵȴÙ. Servlet API ³»¿¡¼ ±×¿Í °°Àº °´Ã¼µéÀº »óÀÀÇÏ´Â ¹üÀ§ÀÇ ¾ÖÆ®¸®ºäÆ®·Î¼ ¾ð±ÞµÈ´Ù.
ELÀÇ °æ¿ì ¾ÖÆ®¸®ºäÆ®¿Í °ü·ÃµÈ ij¸¯ÅÍ ½ºÆ®¸µÀº º¯¼ö À̸§À¸·Î °£ÁÖµÉ ¼öµµ ÀÖ´Ù.
EL¿¡¼ ³»Àå °´Ã¼µé°ú °ü·ÃÀÌ ¾ø´Â ½Äº°ÀÚµéÀº JSP ¹üÀ§¿¡ ÀúÀåµÈ °´Ã¼µéÀ» ¸í¸íÇÏ´Â °ÍÀ¸·Î °£ÁֵȴÙ.
±×¿Í °°Àº ½Äº°ÀÚ´Â ÆäÀÌÁö ¹üÀ§¸¦ °Ë»çÇÏ°í ±× ´ÙÀ½¿¡´Â ¿äû ¹üÀ§, ¼¼¼Ç ¹üÀ§, ¾ÖÇø®ÄÉÀÌ¼Ç ¹üÀ§ ¼øÀ¸·Î
°Ë»çÇÑ´Ù. ½Äº°ÀÚÀÇ À̸§ÀÌ ±× ¹üÀ§¿¡ ÀúÀåµÈ °´Ã¼ À̸§°ú ¸ÅĪµÇ´ÂÁöÀÇ ¿©ºÎ°¡ Å×½ºÆ®µÈ´Ù. ù ¹ø° ¸ÅÄ¡´Â EL
½Äº°ÀÚÀÇ °ªÀ¸·Î ¸®ÅϵȴÙ. EL ½Äº°ÀÚ´Â ¹üÀ§ º¯¼ö¸¦ ÂüÁ¶ÇÏ´Â °ÍÀ¸·Î °£ÁÖµÉ ¼ö ÀÖ´Ù.
±â¼úÀûÀÎ °üÁ¡¿¡¼ º¸¸é ³»Àå °´Ã¼·Î ¸ÅÇÎÇÏÁö ¾Ê´Â ½Äº°ÀÚ´Â PageContext
ÀνºÅϽºÀÇ findAttribute() ¸Þ¼Òµå¸¦ »ç¿ëÇÏ¿© Æò°¡µÇ¸é¼ ÇöÀç ÇÚµéµÇ´Â ¿äû¿¡
´ëÇØ ÀͽºÇÁ·¹¼ÇÀÌ ¹ß»ýÇÏ´Â ÆäÀÌÁöÀÇ ÇÁ·Î¼¼½ÌÀ» ³ªÅ¸³½´Ù. ½Äº°ÀÚÀÇ À̸§Àº ÀÌ ¸Þ¼Òµå¿¡ ´ëÇÑ ÀÎÀڷμ Àü´ÞµÈ´Ù.
ÀÌ°ÍÀº °°Àº À̸§À» °¡Áø ¾ÖÆ®¸®ºäÆ®¿¡ ´ëÇÑ ³× °³ÀÇ ¹üÀ§¸¦ °Ë»öÇÑ´Ù. ¹ß°ßµÈ ù ¹ø° ¸ÅÄ¡´Â
findAttribute() ¸Þ¼Òµå °ªÀ¸·Î ¸®ÅϵȴÙ. ±×¿Í °°Àº ¾ÖÆ®¸®ºäÆ®°¡ ³× °³ÀÇ
¹üÀ§ Áß¿¡ ¾øÀ¸¸é null ÀÌ ¸®ÅϵȴÙ.
±Ã±ØÀûÀ¸·Î ¹üÀ§ º¯¼ö´Â ³× °³ÀÇ EL ½Äº°Àڷμ »ç¿ëµÉ ¼ö ÀÖ´Â À̸§À» °¡Áø JSP ¹üÀ§ÀÇ ¿¡Æ®¸®ºäÆ®¶ó°í
ÇÒ ¼ö ÀÖ´Ù. ¿µ¼ýÀÚ À̸§À¸·Î ÇÒ´çµÇ´Â ÇÑ ¹üÀ§ º¯¼ö´Â JSP ¿¡ Á¸ÀçÇÏ´Â ¸ðµç ¸ÞÄ¿´ÏÁòÀ¸·Î ¸¸µé¾îÁ®
¾ÖÆ®¸®ºäÆ®¸¦ ¼³Á¤ÇÒ ¼ö ÀÖ´Ù. ¿©±â¿¡´Â ºôÆ®ÀÎ <jsp:useBean> ¾×¼ÇÀº
¹°·Ð setAttribute() ¸Þ¼Òµå°¡ Æ÷ÇԵȴÙ. °Ô´Ù°¡ ³× °³ÀÇ JSTL
¶óÀ̺귯¸®¿¡¼ Á¤ÀÇµÈ ¸¹Àº Ä¿½ºÅÒ Å±׵éÀº ½º½º·Î ¹üÀ§ º¯¼ö·Î¼ ¾ÖÆ®¸®ºäÆ® °ªÀ» ¼³Á¤ÇÒ ¼ö ÀÖ´Ù.
³»Àå °´Ã¼(Implicit
objects) 11 °³ÀÇ EL ³»Àå °´Ã¼¿ë ½Äº°Àڴ ǥ 1°ú °°´Ù. JSP ³»Àå
°´Ã¼¿Í È¥µ¿ÇÏÁö ¸»°Í!
Ç¥
1. EL ³»Àå °´Ã¼
Category |
½Äº°ÀÚ |
¼³¸í |
JSP |
pageContext |
ÇöÀç ÆäÀÌÁöÀÇ ÇÁ·Î¼¼½Ì°ú »óÀÀÇÏ´Â
PageContext ÀνºÅϽº |
¹üÀ§ |
pageScope |
ÆäÀÌÁö ¹üÀ§ ¾ÖÆ®¸®ºäÆ® À̸§°ú °ª°ú °ü·ÃµÈ
Map |
requestScope |
¿äû ¹üÀ§ ¾ÖÆ®¸®ºäÆ® À̸§°ú °ª°ú °ü·ÃµÈ
Map |
sessionScope |
¼¼¼Ç ¹üÀ§ ¾ÖÆ®¸®ºäÆ® À̸§°ú °ª°ú °ü·ÃµÈ
Map |
applicationScope |
¾ÖÇø®ÄÉÀÌ¼Ç ¹üÀ§ ¾ÖÆ®¸®ºäÆ® À̸§°ú °ª°ú °ü·ÃµÈ
Map |
¿äû ¸Å°³º¯¼ö |
param |
¿äû ¸Å°³º¯¼öÀÇ ±âº» °ªÀ» À̸§À¸·Î ÀúÀåÇÏ´Â
Map |
paramValues |
¿äû ¸Å°³º¯¼öÀÇ ¸ðµç °ªÀ»
String ¾î·¹À̷μ ÀúÀåÇÏ´Â Map |
¿äû Çì´õ |
header |
¿äû Çì´õÀÇ ±âº» °ªÀ» À̸§À¸·Î ÀúÀåÇÏ´Â
Map |
headerValues |
¿äû Çì´õÀÇ ¸ðµç °ªÀ»
String ¾î·¹À̷μ ÀúÀåÇÏ´Â Map |
ÄíÅ° |
cookie |
¿äû¿¡ ¼ö¹ÝµÇ´Â ÄíÅ°µéÀ» À̸§À¸·Î ÀúÀåÇÏ´Â
Map |
ÃʱâÈ ¸Å°³º¯¼ö |
initParam |
À¥ ¾ÖÇø®ÄÉÀ̼ÇÀÇ ÄÜÅؽºÆ® ÃʱâÈ ¸Å°³º¯¼ö¸¦ À̸ªÀ¸·Î
ÀúÀåÇÏ´Â Map |
JSP¿Í EL ³»Àå °´Ã¼°¡ ÀϹÝÀûÀÎ ÇϳªÀÇ °´Ã¼¸¦ °®´Â ¹Ý¸é(pageContext )
´Ù¸¥ JSP ³»Àå °´Ã¼´Â EL¿¡¼ Á¢±Ù °¡´ÉÇÏ´Ù. ÆäÀÌÁöÄÜÅؽºÆ®°¡ ´Ù¸¥ 8 °³ÀÇ JSP ³»Àå °´Ã¼ ¸ðµÎ¿¡ ¾×¼¼½º
ÇÒ ¼ö ÀÖ´Â ¼Ó¼ºÀ» °®°í Àֱ⠶§¹®ÀÌ´Ù.
³²¾ÆÀÖ´Â ¸ðµç EL ³»Àå °´Ã¼µéÀº ¸Ê(map)ÀÌ´Ù. À̸§¿¡ »óÀÀÇÏ´Â °´Ã¼µéÀ» Ž»öÇÑ´Ù. ù ¹ø° ³× °³ÀÇ
¸ÊÀº ÀÌÀü¿¡ ¾ð±ÞÇÑ ´Ù¾çÇÑ ¾ÖÆ®¸®ºäÆ® ¹üÀ§¸¦ ³ªÅ¸³½´Ù. ƯÁ¤ ¹üÀ§ ³»ÀÇ ½Äº°ÀÚµéÀ» °Ë»öÇϴµ¥ »ç¿ëµÉ ¼ö ÀÖ´Ù.
ELÀÌ ±âº»ÀûÀ¸·Î »ç¿ëÇÏ´Â ¼øÂ÷ÀûÀΠŽ»ö ÇÁ·Î¼¼½º¿¡ ÀÇÁ¸ÇÏÁö ¾Ê´Â´Ù.
´ÙÀ½ ³× °³ÀÇ ¸ÊÀº ¿äû ¸Å°³º¯¼ö¿Í Çì´õÀÇ °ªÀ» ¹ÝÀÔÇÏ´Â ¿ëµµÀÌ´Ù. HPPT ÇÁ·ÎÅäÄÝÀÌ ¿äû ¸Å°³º¯¼ö¿Í
Çì´õ°¡ ´ÙÁß °ªÀ» °¡Áú ¼ö ÀÖµµ·Ï Çϱ⠶§¹®¿¡ °¢°¢ ÇÑ ½ÖÀÇ ¸ÊÀÌ ÀÖ´Ù. °¢ ½Ö Áß¿¡¼ ù ¹ø° ¸ÊÀº ¿äû
¸Å°³º¯¼ö ¶Ç´Â Çì´õ¿¡ ´ëÇÑ ±âº» °ªÀ» ¸®ÅÏÇÑ´Ù. ½ÇÁ¦ ¿äû ½Ã ù ¹ø°·Î ÁöÁ¤µÈ °ªÀÌ ¹«¾ùÀÌµç »ó°ü¾ø´Ù. µÎ
¹ø° ¸ÊÀº ¸Å°³º¯¼ö³ª Çì´õÀÇ °ª ¸ðµÎ °Ë»öµÉ ¼ö ÀÖµµ·Ï ÇÑ´Ù. ÀÌ ¸ÊÀÇ ÇÙ½ÉÀº ¸Å°³º¯¼ö ¶Ç´Â Çì´õÀÇ À̸§ÀÌ´Ù.
°ªµéÀº String °´Ã¼ÀÇ ¾î·¹ÀÌÀÌ´Ù.
ÄíÅ° ³»Àå °´Ã¼´Â ¿äûÀ¸·Î ¼³Á¤µÈ ÄíÅ°¿¡ ´ëÇÑ Á¢±ÙÀ» Á¦°øÇÑ´Ù. ÀÌ °´Ã¼´Â ¿äû°ú °ü·ÃµÈ ¸ðµç ÄíÅ°µéÀÇ
À̸§À» Cookie °´Ã¼µé·Î ¸ÅÇÎÇÏ¸é¼ ÄíÅ°µéÀÇ ¼Ó¼ºÀ» ³ªÅ¸³½´Ù.
¸¶Áö¸· EL ³»Àå °´Ã¼ÀÎ initParam Àº À¥ ¾ÖÇø®ÄÉÀ̼ǰú °ü·ÃµÈ ¸ðµç ÄÜÅؽºÆ®
Ãʱâ¿Í ¸Å°³º¯¼öÀÇ À̸§°ú °ªÀ» ÀúÀåÇÏ´Â ¸ÊÀÌ´Ù. ÃʱâÈ ¸Å°³º¯¼öµéÀº¾ÖÇø®ÄÉÀ̼ÇÀÇ
WEB-INF µð·ºÅ丮¿¡ ÀÖ´Â web.xml Àü°³ µð½ºÅ©¸³ÅÍ
ÆÄÀÏÀ» ÅëÇØ Á¤ÀǵȴÙ.
Á¢±ÙÀÚ(Accessors) EL ½Äº°ÀÚ´Â ³»Àå °´Ã¼
¶Ç´Â ¹üÀ§ º¯¼ö·Î¼ ¼³¸íµÉ ¼ö Àֱ⠶§¹®¿¡ ÀÚ¹Ù °´Ã¼·Î Æò°¡ÇؾßÇÑ´Ù. ELÀº »óÀÀÇÏ´Â Àڹ٠Ŭ·¡½º¿¡¼
ÇÁ¸®¸ÓƼºê¸¦ ·¡ÇÎ/¾ð·¡ÇÎÇÑ´Ù. ÇÏÁö¸¸ ´ëºÎºÐÀÇ °æ¿ì ½Äº°ÀÚµéÀº ÀÚ¹Ù °´Ã¼¿¡ ´ëÇÑ Æ÷ÀÎÅÍ°¡ µÈ´Ù.
°á°úÀûÀ¸·Î ÀÌ·¯ÇÑ °´Ã¼µéÀÇ ¼Ó¼ºÀ̳ª, ¾î·¹ÀÌ¿Í Ä÷º¼ÇÀÇ °æ¿ì ±×µéÀÇ ¿¤¸®¸ÕÆ®¿¡ ¾×¼¼½ºÇÏ´Â °ÍÀÌ ¹Ù¶÷Á÷ÇÏ´Ù.
À̸¦ À§ÇØ ELÀº µÎ °³ÀÇ ´Ù¸¥ Á¢±ÙÀÚ¸¦ Á¦°øÇÑ´Ù. ´å(dot) ¿ÀÆÛ·¹ÀÌÅÍ(. )¿Í ºê·¡Å¶
¿ÀÆÛ·¹ÀÌÅÍ([] )ÀÌ´Ù. À̵éÀº ¼Ó¼º°ú ¿¤¸®¸ÕÆ®µéÀÌ ELÀ» ÅëÇØ ¿¬»êµÉ ¼ö ÀÖµµ·Ï
ÇÑ´Ù.
´å ¿¬»êÀÚ´Â °´Ã¼ÀÇ ÇÁ·ÎÆÛƼ¿¡ Á¢±ÙÇϴµ¥ »ç¿ëµÈ´Ù. ${user.firstName}
ÀͽºÇÁ·¹¼Ç¿¡¼ ´å ¿¬»êÀÚ´Â user ½Äº°ÀÚ¿¡ ÀÇÇØ ÂüÁ¶µÈ °´Ã¼ Áß
firstName À̶ó´Â À̸§À» °¡Áø ¼Ó¼º¿¡ ¾×¼¼½º ÇÑ´Ù. ELÀº ÀÚ¹Ù ºó ±ÔÁ¤À» »ç¿ëÇÏ¿©
°´Ã¼ ¼Ó¼º¿¡ Á¢±ÙÇϱ⠶§¹®¿¡ ÀÌ ¼Ó¼º¿¡ ´ëÇÑ °ÔÅÍ(ÀϹÝÀûÀ¸·Î
getFirstName() )´Â ÀÌ ÀͽºÇÁ·¹¼ÇÀÌ Á¤È®È÷ °è»êÇϱâ À§Çؼ ¹Ýµå½Ã Á¤ÀǵǾî¾ß
ÇÑ´Ù. ¾×¼¼½ºµÇ´Â ¼Ó¼ºÀÌ °´Ã¼ÀÏ ¶§ ´å ¿¬»êÀÚ´Â Àç±ÍÀûÀ¸·Î Àû¿ëµÉ ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î °¡»óÀÇ
user °´Ã¼°¡ ÀÚ¹Ù °´Ã¼·Î¼ ±¸ÇöµÈ address ¼Ó¼ºÀ» °®°í
ÀÖ´Ù¸é ´å ¿¬»êÀÚ´Â ÀÌ °´Ã¼ÀÇ ¼Ó¼º¿¡ ¾×¼¼½º Çϱâ À§ÇØ »ç¿ëµÉ ¼öµµ ÀÖ´Ù.
${user.address.city} ÀͽºÇÁ·¹¼ÇÀº ÀÌ address °´Ã¼ Áß ÁßøµÈ
city ¼Ó¼ºÀ» ¸®ÅÏÇÑ´Ù.
ºê·¡Å¶ ¿¬»êÀÚ´Â ¾î·¹ÀÌ¿Í Ä÷º¼ÇÀÇ ¿¤¸®¸ÕÆ®¸¦ °Ë»öÇϴµ¥ »ç¿ëµÈ´Ù. ¾î·¹ÀÌ¿Í
Ä÷º¼Ç(java.util.List ¸¦ ±¸ÇöÇÏ´Â Ä÷º¼Ç)ÀÇ °æ¿ì °Ë»öµÉ ¿¤¸®¸ÕÆ® À妽º´Â
ºê·¡Å¶ ¾È¿¡ ³ªÅ¸³´Ù. ¿¹¸¦ µé¾î ${urls[3]} ÀͽºÇÁ·¹¼ÇÀº ÀÌ
urls ½Äº°ÀÚ¿¡ ÀÇÇØ ÂüÁ¶µÈ ¾î·¹ÀÌ ¶Ç´Â Ä÷º¼ÇÀÇ ³× ¹ø° ¿¤¸®¸ÕÆ®¸¦ ¸®ÅÏÇÑ´Ù.
java.util.Map ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏ´Â Ä÷º¼ÇÀÇ °æ¿ì ºê·¡Å¶ ¿¬»êÀÚ´Â °ü·Ã
Å°¸¦ »ç¿ëÇÏ¿© ¸Ê¿¡ ÀúÀåµÈ °ªÀ» ã´Â´Ù. ÀÌ Å°´Â ºê·¡Å¶ ³»¿¡¼ ÁöÁ¤µÇ°í »óÀÀÇÏ´Â °ªÀº ÀͽºÇÁ·¹¼Ç °ªÀ¸·Î
¸®ÅϵȴÙ. ¿¹¸¦ µé¾î ${commands["dir"]} ÀͽºÇÁ·¹¼ÇÀº
commands ½Äº°ÀÚ¿¡ ÀÇÇØ ÂüÁ¶µÈ Map ÀÇ
"dir" Å°¿Í °ü·ÃµÈ °ªÀ» ¸®ÅÏÇÑ´Ù.
ÀͽºÇÁ·¹¼ÇÀÌ ºê·¡Å¶¾È¿¡ ³ªÅ¸³¯ ¼ö ÀÖ´Ù. ÁßøµÈ ÀͽºÇÁ·¹¼ÇÀÇ °è»ê °á°ú´Â Ä÷º¼ÇÀ̳ª ¾î·¹ÀÌÀÇ ÀûÀýÇÑ
¿¤¸®¸ÕÆ®¸¦ °Ë»öÇÏ´Â À妽º ¶Ç´Â Å°·Î ÀÛ¿ëÇÑ´Ù. ´å ¿¬»êÀÚ°¡ true¶ó¸é, ºê·¡Å¶ ¿¬»êÀÚµµ Àç±ÍÀûÀ¸·Î Àû¿ëµÉ ¼ö
ÀÖ´Ù. ÀÌ´Â ELÀÌ ´ÙÂ÷¿ø ¾î·¹ÀÌ, Áßø Ä÷º¼Ç, ¶Ç´Â µÑÀÇ °áÇÕ¿¡¼ ¿¤¸®¸ÕÆ®¸¦ °Ë»ö ÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù.
´õ¿íÀÌ ´å ¿¬»êÀÚ¿Í ºê·¡Å¶ ¿¬»êÀÚ´Â »óÈ£¿î¿ë¼ºÀÌ ÀÖ´Ù. ¿¹¸¦µé¾î ÇÑ ¾î·¹ÀÌÀÇ ¿¤¸®¸ÕÆ®°¡ °´Ã¼¶ó¸é ºê·¡Å¶ ¿¬»êÀÚ´Â
±× ¾î·¹ÀÌÀÇ ¿¤¸®¸ÕÆ®¸¦ °Ë»öÇϴµ¥ »ç¿ëµÉ ¼ö ÀÖ°í ´å ¿¬»êÀÚ¿Í °áÇÕÇÏ¿© ¿¤¸®¸ÕÆ® ¼Ó¼º Áß Çϳª¸¦ °Ë»öÇÒ ¼ö
ÀÖ´Ù. (¿¹¸¦ µé¾î ${urls[3].protocol} ).
ELÀÌ µ¿Àû ¾ÖÆ®¸®ºäÆ® °ªÀ» Á¤ÀÇÇÏ´Â °£ÇÑÇÑ ¾ð¾î·Î¼ ÀÛ¿ëÇÑ´Ù°í º¼ ¶§, ÀÚ¹Ù Á¢±ÙÀÚ¿Í´Â ´Ù¸¥ EL
Á¢±ÙÀÚÀÇ Àç¹ÌÀִ Ư¼º Áß Çϳª´Â null ¿¡ Àû¿ëµÉ ¶§ ¿¹¿Ü¸¦ ´øÁöÁö ¾Ê´Â´Ù´Â Á¡ÀÌ´Ù.
EL Á¢±ÙÀÚ°¡ Àû¿ëµÇ´Â °´Ã¼(¿¹¸¦ µé¾î ${foo.bar} ¿Í
${foo["bar"]} ÀÇ foo ½Äº°ÀÚ)°¡
null À̸é Á¢±ÙÀÚ Àû¿ë °á°ú ¿ª½Ã null ÀÌ´Ù. ÀÌ´Â ´ëºÎºÐÀÇ
°æ¿ì, µµ¿òÀÌ µÇ´Â ÀÏÀÌ´Ù.
¸¶Áö¸·À¸·Î ´å ¿¬»êÀÚ¿Í ºê·¡Å¶ ¿¬»êÀÚ´Â »óÈ£ ±³È¯µÉ ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î
${user["firstName"]} Àº user °´Ã¼ÀÇ
firstName ¼Ó¼ºÀ» °Ë»öÇϴµ¥ »ç¿ëµÉ ¼ö ÀÖ´Ù.
${commands.dir} °¡ commands ¸Ê¿¡¼
"dir" Å°¿Í °ü·ÃµÈ °ªÀ» ¹ÝÀÔÇϴµ¥ »ç¿ëµÉ ¼ö Àִ°Ͱú °°Àº ÀÌÄ¡ÀÌ´Ù.
¿¬»êÀÚ(Operators) ½Äº°ÀÚ¿Í Á¢±ÙÀÚ¸¦ »ç¿ëÇÏ¿©
ELÀº ¾ÖÇø®ÄÉÀÌ¼Ç µ¥ÀÌÅÍ(¹üÀ§ º¯¼ö¸¦ ÅëÇØ ³ëÃâ) ¶Ç´Â ȯ°æ °ü·Ã Á¤º¸(EL ³»Àå °´Ã¼¸¦ ÅëÇØ ³ëÃâ)¸¦
Æ÷ÇÔÇÏ°í ÀÖ´Â °´Ã¼ °èÃþÀ» Æ®·¡¹ö½º ÇÒ ¼ö ÀÖ´Ù. ±×¿Í °°Àº µ¥ÀÌÅÍ¿¡ °£´ÜÈ÷ Á¢±ÙÇÏ´Â °ÍÀº ¸¹Àº JSP
¾ÖÇø®ÄÉÀ̼ǿ¡ ÇÊ¿äÇÑ Ç¥Çö ·ÎÁ÷À» ±¸ÇöÇϴµ¥ Á¾Á¾ ºÎÀûÇÕÇÏ´Ù.
EL¿¡´Â EL ÀͽºÇÁ·¹¼ÇÀ¸·Î Á¢±ÙµÈ µ¥ÀÌÅ͸¦ Á¶ÀÛ ¹× ºñ±³ÇÒ ¿©·¯ ¿¬»êÀÚ¸¦ Æ÷ÇÔÇÏ°í ÀÖ´Ù. ÀÌ·¯ÇÑ
¿¬»êÀÚµéÀ» Ç¥ 2¿¡ ¿ä¾àÇß´Ù.
Ç¥
2. EL ¿¬»êÀÚ
Category |
¿¬»êÀÚ |
»ê¼ú |
+ , - , * ,
/ (or div ), % (or
mod ) |
°ü°èÇü |
== (or eq ),
!= (or ne ),
< (or lt ),
> (or gt ),
<= (or le ),
>= (or ge ) |
³í¸® |
&& (or
and ), || (or or ),
! (or not ) |
Ÿ´ç¼º°Ë»ç |
empty |
»ê¼ú ¿¬»êÀÚ´Â ´õÇϱâ, »©±â, ³ª´©±â¸¦ Áö¿øÇÑ´Ù. ´Ù¸¥ ¿¬»êÀڵ鵵 Á¦°øµÈ´Ù. ³ª´©±â¿Í ³ª¸ÓÁö ¿¬»êÀÚµéÀº ºñ
»ó¡ À̸§µéÀ̶ó´Â ´ë¾ÈÀ» °®°í ÀÖ´Ù. »ê¼ú ¿¬»êÀÚÀÇ »ç¿ë¹ýÀ» ¼³¸íÇÏ´Â ¿¹Á¦ ÀͽºÇÁ·¹¼ÇÀº Listing 5¿¡
¼³¸íµÇ¾î ÀÖ´Ù. »ê¼ú ¿¬»êÀÚ¸¦ ÇÑ ½ÖÀÇ EL ÀͽºÇÁ·¹¼Ç¿¡ Àû¿ëÇÑ °á°ú´Â ±×·¯ÇÑ ÀͽºÇÁ·¹¼Ç¿¡ ÀÇÇØ ¸®ÅÏµÈ ¼ýÀÚ
°ª¿¡ ´ëÇÑ ¿¬»êÀÚ¿¡ Àû¿ëÇÑ °á°úÀÌ´Ù. Listing 5. »ê¼ú ¿¬»êÀÚ¸¦
»ç¿ëÇÏ´Â EL ÀͽºÇÁ·¹¼Ç
${item.price * (1 + taxRate[user.address.zipcode])}
|
°ü°èÇü ¿¬»êÀÚ´Â ¼ýÀÚ ¶Ç´Â ÅؽºÆ® µ¥ÀÌÅ͸¦ ºñ±³ÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù. ºñ±³ °á°ú´Â ºÎ¿ï °ªÀ¸·Î¼ ¸®ÅϵȴÙ.
³í¸®Àû ¿¬»êÀÚ´Â ºÎ¿ï °ªÀÌ °áÇÕµÉ ¼ö ÀÖµµ·Ï ÇÏ¸ç »õ·Î¿î ºÎ¿ï °ªÀ» ¸®ÅÏÇÑ´Ù. EL ³í¸®Àû ¿¬»êÀÚ´Â ÁßøµÈ
°ü°èÇü ¿¬»êÀÚ ¶Ç´Â ³í¸®Àû ¿¬»êÀÚÀÇ °á°ú¿¡ Àû¿ëµÉ ¼ö ÀÖ´Ù. (Listing 6). Listing 6. °ü°èÇü ¿¬»êÀÚ ¹× ³í¸®Àû ¿¬»êÀÚ¸¦ »ç¿ëÇÏ´Â EL
ÀͽºÇÁ·¹¼Ç
${(x >= min) && (x <= max)}
|
EL ¿¬»êÀÚ´Â empty ÀÌ´Ù. µ¥ÀÌÅÍÀÇ Å¸´ç¼º °Ë»ç¿¡ ƯÈ÷ À¯¿ëÇÏ´Ù.
empty ¿¬»êÀÚ´Â ÇϳªÀÇ ÀͽºÇÁ·¹¼ÇÀ» ÀÎÀÚ·Î ÃëÇÑ´Ù.(${empty
input} ). ±×¸®°í ÀͽºÇÁ·¹¼ÇÀÌ empty °ªÀ¸·Î °è»êÇß´ÂÁöÀÇ ¿©ºÎ¸¦
³ªÅ¸³»´Â ºÎ¿ï °ªÀ» ¸®ÅÏÇÑ´Ù. null ·Î °è»êÇÑ ÀͽºÇÁ·¹¼ÇÀº
empty ·Î °£ÁֵȴÙ. ¾î¶² ¿¤¸®¸ÕÆ®µµ ¾ø´Â Ä÷º¼ÇÀ̳ª ¾î·¹ÀÌ¿Í °°´Ù.
empty ¿¬»êÀÚ´Â ÀÎÀÚ°¡ ±æÀÌ°¡ 0ÀÎ String À¸·Î °è»êÇß´Ù¸é
true ·Î ¸®ÅÏÇÑ´Ù.
EL ¿¬»êÀÚÀÇ ¿ì¼±¼øÀ§´Â Ç¥ 3¿¡ Á¤¸®µÇ¾î ÀÖ´Ù. Listing 5¿Í 6¿¡ Á¦¾ÈµÈ °Í ó·³ °ýÈ£´Â ±×·ì
ÀͽºÇÁ·¹¼Ç¿¡ »ç¿ëµÇ°í ÀϹÝÀûÀÎ ¿ì¼±¼øÀ§¸¦ µû¸¥´Ù.
Ç¥
3. EL ¿¬»êÀÚ ¿ì¼±¼øÀ§ (À§->¾Æ·¡, ¿ÞÂÊ->¿À¸¥ÂÊ)
[] , . |
() |
unary - , not ,
! , empty |
* , / , div ,
% , mod |
+ , binary - |
() < , > ,
<= , >= ,
lt , gt , le ,
ge |
== , != , eq ,
ne |
&& ,
and |
|| , or |
¸®ÅÍ·²(Literals) ¼ýÀÚ, ij¸¯ÅÍ ½ºÆ®¸µ, ºÎ¿ï,
null Àº EL ÀͽºÇÁ·¹¼Ç¿¡¼ ¸®ÅÍ·² °ªÀ¸·Î ÁöÁ¤µÉ ¼ö ÀÖ´Ù. ij¸¯ÅÍ ½ºÆ®¸µÀº ½Ì±Û ÄõÆ®
¶Ç´Â ´õºí ÄõÆ®·Î ¹üÀ§°¡ ÁöÁ¤µÈ´Ù. ºÎ¿ï °ªÀº true ¿Í
false ·Î °è»êµÈ´Ù.
Taglib
Áö½Ã¹® ¾Õ¼ ¾ð±ÞÇßÁö¸¸ JSTL 1.0¿¡´Â ³× °³ÀÇ Ä¿½ºÅÒ ÅÂ±× ¶óÀ̺귯¸®°¡ Æ÷ÇԵǾî
ÀÖ´Ù. ÀͽºÇÁ·¹¼Ç ¾ð¾î·Î JSTL ű×ÀÇ ÀÎÅÍ·¢¼ÇÀ» ¼³¸íÇϱâ À§ÇØ JSTL core
¶óÀ̺귯¸®¿¡¼ ¿©·¯ ű׵éÀ» °ËÅäÇÒ °ÍÀÌ´Ù. ¸ðµç JSP Ä¿½ºÅÒ ÅÂ±× ¶óÀ̺귯¸®·Î true°¡ µÈ´Ù¸é
taglib Áö½Ã¹®Àº ÀÌ ¶óÀ̺귯¸® ű׸¦ »ç¿ëÇÒ ¼ö ÀÖ´Â ÆäÀÌÁö¿¡ Æ÷ÇԵǾî¾ßÇÑ´Ù. ÀÌ
ƯÁ¤ ¶óÀ̺귯¸®¿¡ ´ëÇÑ Áö½Ã¹®Àº Listing 7¿¡ ³ªÅ¸³ªÀÖ´Ù. Listing 7. JSTL core ¶óÀ̺귯¸®ÀÇ EL ¹öÀü¿ë Åױ׸³
Áö½Ã¹®
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
|
½ÇÁ¦·Î JSTL core ¶óÀ̺귯¸®¿¡ »óÀÀÇÏ´Â µÎ °³ÀÇ
Taglib Áö½Ã¹®ÀÌ ÀÖ´Ù. JSTLÅÙ¿¡¼ ELÀº ¿É¼ÇÀ̱⠶§¹®ÀÌ´Ù. JSTL 1.0 ÀÇ
³× °³ÀÇ Ä¿½ºÅÒ ÅÂ±× ¶óÀ̺귯¸®µéÀº µ¿Àû ¾ÖÆ®¸®ºäÆ® °ªÀ» ÁöÁ¤ÇÒ ¶§ EL ´ë½Å JSP ÀͽºÇÁ·¹¼ÇÀ» »ç¿ëÇÏ´Â ´ë¾È
¹öÀüÀ» °®°íÀÖ´Ù. ÀÌ·¯ÇÑ ´ë¾È ¶óÀ̺귯¸®´Â JSPÀÇ ÀüÅëÀûÀÎ ¿äû½Ã°£ ¾ÖÆ®¸®ºäÆ® °ª¿¡ ÀÇÁ¸Çϱ⠶§¹®¿¡ RT
¶óÀ̺귯¸®·Î ÀÏÄþîÁø´Ù. ¹Ý¸é ÀͽºÇÁ·¹¼Ç ¾ð¾î¸¦ »ç¿ëÇÏ´Â °ÍÀº EL
¶óÀ̺귯¸®¶ó°í ÇÑ´Ù. °³¹ßÀÚµéÀº ´ë¾È Taglib Áö½Ã¹®À» »ç¿ëÇÏ´Â °¢°¢ÀÇ ¶óÀ̺귯¸®ÀÇ
¹öÀüµéÀ» ±¸º°ÇÑ´Ù. RT ¹öÀüÀÇ ÄÚ¾î ¶óÀ̺귯¸®¸¦ »ç¿ëÇϱâ À§ÇÑ Áö½Ã¹®Àº Listing 8¿¡ ³ª¿ÍÀÖ´Ù. ÇÏÁö¸¸
Áö±ÝÀº EL¿¡ ÁýÁßÇØ¾ß Çϱ⠶§¹®¿¡ Áö±Ý ÇÊ¿äÇÑ °ÍÀº ÀÌ Áö½Ã¹®µé Áß Ã¹ ¹ø° °ÍÀÌ´Ù. Listing 8. RT ¹öÀüÀÇ JSTL core ¶óÀ̺귯¸®¿ë ű׸³
Áö½Ã¹®
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c_rt" %>
|
º¯¼ö
ÅÂ±× Ã¹ ¹ø° JSTL Ä¿½ºÅÒ Å±״ <c:set>
¾×¼ÇÀÌ´Ù. ÀÌ¹Ì ¾ð±ÞÇßµíÀÌ ¹üÀ§ º¯¼ö´Â JSTL¿¡¼ ÇÙ½ÉÀûÀÎ ¿ªÇÒÀ» ÇÏ°í
<c:set> ¾×¼ÇÀº ÅÂ±× ±â¹ÝÀÇ ¸ÅÄ¿´ÏÁòÀ» Á¦°øÇÏ¿© ¹üÀ§ º¯¼öÀÇ »ý¼º ¹×
¼³Á¤¿¡ ¾²ÀδÙ. ÀÌ ¾×¼ÇÀÇ ½ÅÅýº´Â Listing 9¿Í °°´Ù. var ¾ÖÆ®¸®ºäÆ®´Â ¹üÀ§
º¯¼ö À̸§À» Á¤ÇÏ°í scope ¾ÖÆ®¸®ºäÆ®´Â º¯¼ö°¡ ¸Ó¹°°Ô µÉ ¹üÀ§¸¦ ³ªÅ¸³»°í,
value ¾ÖÆ®¸®ºäÆ®´Â º¯¼ö°¡ µÉ °ªÀ» ÁöÁ¤ÇÑ´Ù. ÁöÁ¤µÈ º¯¼ö°¡ ÀÌ¹Ì Á¸ÀçÇϸé Áö½ÃµÈ
°ªÀ¸·Î ÇÒ´çµÈ´Ù. ±×·¸Áö ¾Ê´Ù¸é »õ·Î¿î ¹üÀ§ º¯¼ö°¡ ¸¸µé¾îÁö°í ±× °ªÀ¸·Î ÃʱâȵȴÙ. Listing 9. <c:set> ¾×¼Ç ½ÅÅýº
<c:set var="name" scope="scope" value="expression"/>
|
scope ¾ÖÆ®¸®ºäÆ®´Â ¼±ÅÃÀûÀ̸ç page ·Î ±âº» ¼³Á¤µÇ¾î
ÀÖ´Ù.
<c:set> ÀÇ µÎ ¿¹Á¦´Â Lisitng 10¿¡ ¼³¸íµÇ¾î ÀÖ´Ù. ù ¹ø°
¿¹Á¦¿¡¼ ¼¼¼Ç ¹üÀ§ º¯¼ö´Â String °ªÀ¸·Î ¼³Á¤µÈ´Ù. µÎ ¹ø°¿¡¼´Â ÀͽºÇÁ·¹¼ÇÀº ¼ýÀÚ
°ªÀ» ¼³Á¤Çϴµ¥ »ç¿ëµÈ´Ù. square ¶ó´Â ÆäÀÌÁö ¹üÀ§ º¯¼ö´Â x
¶ó´Â ¿äû ¸Å°³º¯¼ö °ªÀ» ¹è°¡½ÃŲ °á°ú·Î ÇÒ´çµÈ´Ù. Listing
10. <c:set> ¾×¼Ç ¿¹Á¦
<c:set var="timezone" scope="session" value="CST"/>
<c:set var="square" value="${param['x'] * param['x']}"/>
|
¾ÖÆ®¸®ºäÆ®¸¦ »ç¿ëÇÏ´Â ´ë½Å ¹üÀ§ º¯¼ö¿ë °ªÀ» <c:set> ¾×¼ÇÀÇ ¹Ùµð
ÄÜÅÙÆ®·Î ¼³Á¤ÇÒ ¼ö ÀÖ´Ù. ÀÌ·¯ÇÑ Á¢±Ù¹æ½ÄÀ» »ç¿ëÇÏ¿© Listing 10ÀÇ Ã¹ ¹ø° ¿¹Á¦¸¦ Listing 11°ú
°°ÀÌ ÀçÀÛ¼ºÇÒ ¼ö ÀÖ´Ù. ´õ¿íÀÌ <c:set> ű×ÀÇ ¹Ùµð ÄÜÅÙÆ®°¡ Ä¿½ºÅÒ
ű׸¦ Àû¿ëÇÏ´Â °Íµµ °¡´ÉÇÏ´Ù. <c:set> ÀÇ ¹Ùµð ¾È¿¡¼ ¸¸µé¾îÁø ¸ðµç
ÄÜÅÙÆ®´Â String °ª °°ÀÌ ÁöÁ¤µÈ º¯¼ö¿¡ ÇÒ´çµÈ´Ù.. Listing 11. ¹Ùµð ÄÜÅÙÆ®¸¦ ÅëÇØ <c:set> ¾×¼Ç¿ë °ª
ÁöÁ¤Çϱâ
<c:set var="timezone" scope="session">CST</c:set>
|
JSTL core ¶óÀ̺귯¸®¿¡´Â ¹üÀ§ º¯¼ö¸¦ °ü¸®ÇÏ´Â µÎ ¹ø°
ű×(<c:remove> )°¡ Æ÷ÇԵǾî ÀÖ´Ù. À̸§¿¡¼ ½Ã»çµÇ´Â ¹Ù¿Í °°ÀÌ
<c:remove> ¾×¼ÇÀº ¹üÀ§ º¯¼ö¸¦ Áö¿ì´Âµ¥ »ç¿ëµÇ°í µÎ °³ÀÇ ¾ÖÆ®¸®ºäÆ®¸¦
ÃëÇÑ´Ù. var ¾ÖÆ®¸®ºäÆ®´Â Á¦°ÅµÉ º¯¼ö¸¦ ¸í¸íÇÏ°í ¼±ÅÃÀûÀÎ
scope ¾ÖÆ®¸®ºäÆ®´Â Á¦°ÅµÇ¾î¾ß ÇÒ ¹üÀ§¸¦ ³ªÅ¸³½´Ù. (Listing
12). Listing 12. <c:remove> ¾×¼Ç
¿¹Á¦
<c:remove var="timezone" scope="session"/>
|
¾Æ¿ôDz
<c:set>
¾×¼ÇÀº ÀͽºÇÁ·¹¼ÇÀÇ °á°ú°¡ ¹üÀ§ º¯¼ö·Î ÇÒ´çµÉ ¼ö ÀÖµµ·Ï ÇÏ´Â ¹Ý¸é °³¹ßÀÚµéÀº ÀͽºÇÁ·¹¼Ç °ªÀ» ÀúÀåÇÏ´Â ´ë½Å
°£´ÜÈ÷ µð½ºÇ÷¹ÀÌÇϱ⸦ ¿øÇÑ´Ù. ÀÌ´Â JSTLÀÇ <c:out> Ä¿½ºÅÒ Å±×ÀÇ
¸òÀÌ´Ù. (Listing 13). ÀÌ Å±״ value ¾ÖÆ®¸®ºäÆ®¿¡¼ ÁöÁ¤µÈ ÀͽºÇÁ·¹¼ÇÀ»
°è»êÇÑ´Ù. ±×·±´ÙÀ½ °á°ú¸¦ ÇÁ¸°Æ®ÇÑ´Ù. ¼±ÅÃÀû default ¾ÖÆ®¸®ºäÆ®°¡ ÁöÁ¤µÇ¸é
value ¾ÖÆ®¸®ºäÆ®ÀÇ ÀͽºÇÁ·¹¼ÇÀÌ null ¶Ç´Â ºñ¾îÀÖ´Â
String À¸·Î °è»êµÉ ¶§ <c:out> ¾×¼ÇÀº °ªÀ»
ÇÁ¸°Æ®ÇÑ´Ù. Listing 13. <c:out> ¾×¼Ç
½ÅÅýº
<c:out value="expression" default="expression" escapeXml="boolean"/>
|
escapeXml ¾ÖÆ®¸®ºäÆ® ¶ÇÇÑ ¼±ÅûçÇ×ÀÌ´Ù. "<", ">",
"&" °°Àº ij¸¯ÅÍ°¡ <c:out> ű׿¡ ÀÇÇØ ¾Æ¿ôDz µÉ ¶§
Á¾·áµÇ´ÂÁöÀÇ ¿©ºÎ¸¦ Á¦¾îÇÑ´Ù. escapeXml ÀÌ true·Î ¼³Á¤µÇ¾î ÀÖ´Ù¸é ÀÌ
ij¸¯Å͵éÀº »óÀÀÇÏ´Â XML ÀÎÅÍƼ(< ,
> , & )·Î ¹Ù²ï´Ù.
¿¹¸¦ µé¾î, user ¶ó´Â ¼¼¼Ç ¹üÀ§ º¯¼ö°¡ ÀÖ´Ù°í °¡Á¤Çغ¸ÀÚ. ÀÌ°ÍÀº »ç¿ëÀÚ¿¡ ´ëÇÑ
username °ú company ¶ó´Â µÎ °³ÀÇ ¼Ó¼ºµéÀ» Á¤ÀÇÇÏ´Â
Ŭ·¡½ºÀÇ ÀνºÅϽºÀÌ´Ù. ÀÌ °´Ã¼´Â »ç¿ëÀÚ°¡ »çÀÌÆ®¿¡ Á¢±ÙÇÒ ¶§¸¶´Ù ¼¼¼Ç¿¡ ÇÒ´çµÈ´Ù. ÇÏÁö¸¸ ÀÌ µÎ °³ÀÇ ¼Ó¼ºµéÀº
»ç¿ëÀÚ°¡ ½ÇÁ¦·Î ·Î±×ÀÎÇϱâ Àü±îÁö ¼³Á¤µÇÁö ¾Ê´Â´Ù. (Listing 14). ÀÏ´Ü »ç¿ëÀÚ°¡ ·Î±×ÀÎÇϸé
"Hello"°¡ µð½ºÇ÷¹ÀÌ µÇ°í µÚµû¶ó¼ »ç¿ëÀÚ À̸§°ú °¨ÅººÎÈ£°¡ ³ª¿Â´Ù. »ç¿ëÀÚ°¡ ·Î±×ÀÎÇϱâ Àü¿¡ ¿©±â¿¡¼
»ý±ä ÄÜÅÙÆ®´Â "Hello Guest!" ¶ó´Â ±¸(phrase)°¡ µÈ´Ù. ÀÌ °æ¿ì
username ¼Ó¼ºÀÌ ÃʱâȵÇÁö ¾Ê¾Ò±â ¶§¹®¿¡
<c:out> ű״ default ¾ÖÆ®¸®ºäÆ® °ªÀ»
ÇÁ¸°Æ®ÇÑ´Ù. Listing 14. <c:out> ¾×¼Ç ¿¹Á¦
(µðÆúÆ® ÄÜÅÙÆ®)
Hello <c:out value="${user.username}" default=="Guest"/>!
|
<c:out> ű×ÀÇ escapeXml
¾ÖÆ®¸®ºäÆ®¸¦ »ç¿ëÇÏ´Â Listing 15¸¦ º¸ÀÚ. company ¼Ó¼ºÀÌ ÀÚ¹Ù
String °ªÀÎ "Flynn & Sons" À¸·Î
¼³Á¤µÇ¾ú´Ù¸é ÀÌ ¾×¼Ç¿¡¼ »ý±ä ÄÜÅÙÆ®´Â Flynn & Sons ÀÌ µÈ´Ù. ÀÌ ¾×¼ÇÀÌ
HTML ¶Ç´Â XML ÄÜÅÙÆ®¸¦ ¸¸µå´Â JSP ÆäÀÌÁöÀÇ ÀϺζó¸é ÀÌ Ä³¸¯ÅÍÀÇ ½ºÆ®¸µ Áß°£¿¡ ÀÖ´Â ¾ÚÆÛ»÷Æ® ºÎÈ£´Â
HTML ¶Ç´Â XMLÀÌ ¹®ÀÚ¸¦ Á¦¾îÇÏ°í ÀÌ ÄÜÅÙÆ®ÀÇ ·»´õ¸µ ¶Ç´Â ÆĽÌÀ» ¹æÇØÇϴ°ÍÀ¸·Î Çؼ®ÇÏ°í ³¡³´Ù.
escapeXml ¾ÖÆ®¸®ºäÆ®ÀÇ °ªÀÌ true ·Î ¼³Á¤µÇ¸é »ý¼ºµÈ
ÄÜÅÙÆ®´Â Flynn & Sons ÀÌ µÈ´Ù. ÀÌ ÄÜÅÙÆ®¸¦ ¸¸³ª´Â ºê¶ó¿ìÀú ¶Ç´Â
Æļ´Â ÀÎÅÍÇÁ¸®Å×À̼ǿ¡ ¾Æ¹« ¹®Á¦°¡ ¾ø´Ù. HTML°ú XMLÀÌ JSP ¾ÖÇø®ÄÉÀ̼ǿ¡¼ °¡Àå ÀϹÝÀûÀÎ ÄÜÅÙÆ®
À¯ÇüÀ̶ó¸é escapeXml ¾ÖÆ®¸®ºäÆ®ÀÇ µðÆúÆ® °ªÀÌ true ¶ó´Â
°ÍÀº ³î¶ó¿î ÀÏÀÌ ¾Æ´Ï´Ù. Listing 15.
<c:out> ¾×¼Ç ¿¹Á¦
<c:out value="${user.company}" escapeXml=="false"/>
|
µðÆúÆ® °ªÀ¸·Î º¯¼ö
¼³Á¤Çϱ⠵¿Àû µ¥ÀÌÅ͸¦ ´Ü¼øÇÏ°Ô ÇÏ´Â °Í ¿Ü¿¡µµ µðÆúÆ® °ªÀ» ÁöÁ¤ÇÏ´Â
<c:out> ÀÇ ±â´ÉÀº <c:set> À» ÅëÇØ
º¯¼ö °ªÀ» ¼³Á¤ÇÒ ¶§¿¡µµ À¯¿ëÇÏ´Ù. ¹üÀ§ º¯¼ö¿¡ ÇÒ´çµÈ °ªÀÌ <c:set>
ű×ÀÇ ¹Ùµð ÄÜÅÙÆ®·Î ÁöÁ¤µÉ¼ö ÀÖ°í value ¾ÖÆ®¸®ºäÆ®·Î¼µµ °¡´ÉÇÏ´Ù.
<c:out> ¾×¼ÇÀ» <c:set> ű×ÀÇ
¹Ùµð ÄÜÅÙÆ®¿¡ ÁßøÇÏ¿© º¯¼ö ÇÒ´çÀº ÀÌ°ÍÀÇ µðÆúÆ® °ªÀ» ÀÌ¿ëÇÒ ¼ö ÀÖ´Ù. (Listing
11).
ÀÌ·¯ÇÑ Á¢±Ù ¹æ½ÄÀº Listing 16¿¡µµ ¼³¸íµÇ¾î ÀÖ´Ù. ¿ÜºÎ
<c:set> ű×ÀÇ ÀÛµ¿Àº ´Ü¼øÇÏ´Ù. Listing 16. <c:set>°ú <c:out> °áÇÕ:
µðÆúÆ® º¯¼ö °ª Á¦°ø
<c:set var="timezone" scope=="session">
<c:out value="${cookie['tzPref'].value}" default=="CST"/>
</c:set>
|
¿äû¿¡ Á¦°øµÈ tzPref ¶ó´Â À̸§ÀÇ ÄíÅ°°¡ ¾ø´Ù. ³»Àå °´Ã¼¸¦ »ç¿ëÇÑ °Ë»öÀº
null ÀÌ µÈ´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù. ÀͽºÇÁ·¹¼ÇÀº ÀüüÀûÀ¸·Î
null À» ¸®ÅÏÇÑ´Ù. value ¾ÖÆ®¸®ºäÆ®¸¦ °è»êÇÑ °ªÀÌ
null À̱⠶§¹®¿¡ <c:out> ű״Â
default ¾ÖÆ®¸®ºäÆ®¸¦ °è»êÇÑ °á°ú¸¦ ¾Æ¿ôDzÇÑ´Ù.
Âü°íÀÚ·á
|