Tiles

์ •์˜

๋ฐ˜๋ณต์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๋ ˆ์ด์•„์›ƒ(header, footer ๋“ฑ) ์ •๋ณด๋ฅผ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํŽ˜์ด์ง€ ๊ตฌ์„ฑ์„ ๊ด€๋ฆฌํ•˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ

๋‹จ์ˆœํžˆ ํŒŒ์ผ์„ ํ•ฉ์ณ์ฃผ๋Š” JSP Include์™€ ๋‹ฌ๋ฆฌ, ajax์ฒ˜๋Ÿผ ๋ถ€๋ถ„์  ์žฌ๋ Œ๋”๋ง์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

3์š”์†Œ

Template

  • ํŽ˜์ด์ง€ ๋ ˆ์ด์•„์›ƒ

  • jsp๋กœ ํŽ˜์ด์ง€์˜ ๊ธฐ๋ณธ ๊ณจ๊ฒฉ๋งŒ ๊ตฌ์„ฑํ•˜๊ณ  ๊ฐ ํŽ˜์ด์ง€์˜ ์‹ค์ œ ๋‚ด์šฉ์€ definition์—์„œ ์„ค์ •๋˜๋Š” Attribute ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋Ÿฐํƒ€์ž„์— ๋ฟŒ๋ฆผ

Attribute

  • Template์˜ ๋นˆ ๊ณต๊ฐ„์„ ์ฑ„์šฐ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ์ •๋ณด

  • 3๊ฐ€์ง€ ํƒ€์ž…์œผ๋กœ ๊ตฌ์„ฑ

    • template

    • definition

    • string

Definition

  • ์‚ฌ์šฉ์ž์—๊ฒŒ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ๋ Œ๋”๋ง๋˜๋Š” Template๊ณผ Attribute ์—ฐ๊ฒฐ

์‚ฌ์šฉ๋ฒ•

  1. pom.xml ์— tiles๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ๋ชจ๋“ˆ dependency ์ถ”๊ฐ€

    <dependency> 
     	<groupId>org.apache.tiles</groupId> 
        <artifactId>tiles-jsp</artifactId> 
        <version>๋ฒ„์ „</version> 
     </dependency>
     <dependency> 
       <groupId>org.apache.tiles</groupId> 
       <artifactId>tiles-template</artifactId> 
       <version>๋ฒ„์ „</version> 
     </dependency> 
  2. applicaitonContext.xml ์—์„œ ํƒ์ƒ‰ ์šฐ์„  ์ˆœ์œ„๋ฅผ tiles - jsp ์ˆœ์œผ๋กœ ์„ค์ •

    <!-- Tiles ViewResolver --> 
    <bean id="tilesViewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
      <property name="viewClass" value="org.springframework.web.servlet.view.tiles2.TilesView"/> 
      <property name="order" value="1"/> //์šฐ์„ ์ˆœ์œ„ 1 - ํƒ€์ผ์ฆˆ ์„ค์ • 
    </bean> 
    
    <!-- JSP ViewResolver --> 
    <bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
      <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> 
      <property name="prefix" value="/WEB-INF/jsp/"/> <property name="suffix" value=".jsp"/> 
      <property name="order" value="2"/> //์šฐ์„ ์ˆœ์œ„ 2 - jsp์„ค์ • 
    </bean>

    ์ฆ‰, tiles ํŒŒ์ผ(์„ค์ • ํŒŒ์ผ์— ์ •์˜๋œ definition๊ณผ ์™„์ „ํžˆ ์ผ์น˜ํ•˜๋Š” jsp ํŒŒ์ผ)์ด ์žˆ์œผ๋ฉด ์ด๊ฑธ ๋จผ์ € ์„ ํƒํ•˜๊ณ , ์—†๋‹ค๋ฉด ์ผ๋ฐ˜์ ์ธ jsp ํŒŒ์ผ์„ ์„ ํƒํ•œ๋‹ค.

  3. tiles ์„ค์ • ํŒŒ์ผ(xml) ์ž‘์„ฑ

    <?xml version="1.0" encoding="UTF-8" ?> 
    <!DOCTYPE tiles-definitions PUBLIC "-//Apache Software Foundation//DTD Tiles Configuration 2.1//EN" "http://tiles.apache.org/dtds/tiles-config_2_1.dtd"> 
    <tiles-definitions>
        <definition name="page1/*">
            <put-attribute name="title" value="test" /> 
            <put-attribute name="header" value="/WEB-INF/views/common/header.jsp" />
            <put-attribute name="body" value="WEB-INF/views/page1/{1}.jsp" /> 
            <put-attribute name="bottom" value="/WEB-INF/views/common/bottom.jsp" /> 
        </definition>
    </tiles-definitions>
    • ํƒœ๊ทธ ์•ˆ์— definition๋“ค์„ ์ •์˜ํ•œ๋‹ค.

    • definition์—๋Š” ๋‹ค์Œ์˜ ์ •๋ณด๋“ค์ด ํฌํ•จ๋œ๋‹ค.

      • ์ด๋ฆ„ (๋‹ค๋ฅธ definition์—์„œ ์ƒ์† ๋“ฑ์˜ ์ฐธ์กฐ๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด)

      • ํ…œํ”Œ๋ฆฟ (์ด definition์ด ์‚ฌ์šฉ๋  jsp ๋ ˆ์ด์•„์›ƒ ํŒŒ์ผ ๊ฒฝ๋กœ)

        • ์ด๋ฅผ ์ƒ๋žตํ•˜๋ฉด

    • definition ๋‚ด์— ์ •์˜๋˜๋Š” attribute์—๋Š” ๋‹ค์Œ์˜ ์ •๋ณด๋“ค์ด ํฌํ•จ๋œ๋‹ค.

      • ์ด๋ฆ„ (jsp ๋ ˆ์ด์•„์›ƒ์—์„œ ์ด๋ฅผ ํ†ตํ•ด attribute๋ฅผ ํ˜ธ์ถœ)

      • ๊ฐ’ (attribute๋ฅผ ํ˜ธ์ถœํ–ˆ์„ ๋•Œ ๋ฐ˜ํ™˜๋  String/Templateโ€ฆ)

      • *์€ ๋ชจ๋“  ๋ฌธ์ž์—ด์„ ๋œปํ•จ. ํŒŒ์ผ๋ช…์€ * ๋””๋ ‰ํ† ๋ฆฌ๋ช…์€ **

      • {1}, {2}์™€ ๊ฐ™์€ ์ˆซ์ž๋Š” *์— ๋“ค์–ด๊ฐ„ ๊ฒƒ์„ ์ˆœ์„œ๋Œ€๋กœ ๋ฐ›์Œ

  4. tiles ํƒœ๊ทธ๋ฅผ ํ†ตํ•ด ๋ฌธ์ž์—ด, ๋ ˆ์ด์•„์›ƒ(jsp)๋ฅผ ๋™์ ์œผ๋กœ include

    <**tiles:getAsString** name="title"/>
    • name์ด title์ธ attribute์˜ value์— ์„ ์–ธ๋œ ๋‚ด์šฉ์„ ๊ทธ๋Œ€๋กœ ๊ฐ€์ ธ์˜ด

     <**tiles:insertAttribute** name="header" />
    • name์ด header์ธ jsp ํŒŒ์ผ์˜ ๋‚ด์šฉ์„ ๊ฐ€์ ธ์˜ด

  5. ์ปจํŠธ๋กค๋Ÿฌ์—์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋งคํ•‘ํ•ด์„œ ์‚ฌ์šฉ

    @RequestMapping("/")
    public String testList (HttpServletRequest request, HttpServletResponse response, ModelMap model) {
    		return "page1/main";
    }
    • ์ด๋ฆ„์ด page1/*์ธ ํƒ€์ผ์ฆˆ์™€ ๋งคํ•‘๋œ๋‹ค.

Last updated