Spring3.0 Tiles

2012. 5. 14. 19:15

기본 세팅 Tiles 프로젝트 파일


==============================


=================================이론=====================================

컨트롤러생성

template 메뉴에 링크등록

바디생성

dispatcher-servlet.xml 등록

tilesdef.xml 등록 - 타일스 설정


===============================프로젝트===================================
=================================코드=====================================
titlesDemo
src
    kr.spring.tiles.controller
           IndexController
package kr.spring.tiles.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class IndexController {
    @RequestMapping("/index.do")
    public String process() {
            return "index";
        }
}

           Menu1Controller
package kr.spring.tiles.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class Menu1Controller {
    @RequestMapping("/menu1.do")
    public String process() {
            return "menu1";
        }
}

           Menu2Controller
package kr.spring.tiles.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class Menu2Controller {
    @RequestMapping("/menu2.do")
    public String process() {
            return "menu2";
        }
}

           Menu3Controller
package kr.spring.tiles.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class Menu3Controller {
    @RequestMapping("/menu3.do")
    public String process() {
            return "menu3";
        }
}

WebContent
      tiles2def
           tiles2def.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="index" template="/WEB-INF/viewtiles2/template/layout.jsp">
        <put-attribute name="title"  value="Spring Tiles Example"/>
        <put-attribute name="menu"   value="/WEB-INF/viewtiles2/template/menu.jsp"/>
        <put-attribute name="header" value="/WEB-INF/viewtiles2/template/header.jsp"/>
        <put-attribute name="body"   value="/WEB-INF/viewtiles2/body.jsp"/>
        <put-attribute name="footer" value="/WEB-INF/viewtiles2/template/footer.jsp"/>
    </definition>
   
    <definition name="menu1" extends="index">
        <put-attribute name="body"   value="/WEB-INF/viewtiles2/body-menu1.jsp"/>
    </definition>
   
    <definition name="menu2" extends="index">
        <put-attribute name="body"   value="/WEB-INF/viewtiles2/body-menu2.jsp"/>
    </definition>
   
    <definition name="menu3" extends="index">
        <put-attribute name="body"   value="/WEB-INF/viewtiles2/body-menu3.jsp"/>
    </definition>
</tiles-definitions>

      viewtiles2
           template
                footer.jsp
<%@page contentType="text/html; charset=euc-kr"%>
<div align="center" style="background:yellow;">
    company information
</div>

                header.jsp
<%@page contentType="text/html; charset=euc-kr"%>
<h2 align="center">Spring Tiles Examples!!!</h2>

                layout.jsp
<%@ page contentType="text/html; charset=euc-kr"%>
<%@ taglib prefix="tiles"  uri="http://tiles.apache.org/tags-tiles"%>
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title><tiles:getAsString name="title" /></title>
    </head>
    <body>

    <table border=0 cellpadding=0 cellspacing=1 bgcolor="#a0a0a0" width="100%">
        <tr height=100 valign="middle" bgcolor="#ffffff">
            <td colspan=2><tiles:insertAttribute name="header"/></td>
        </tr>
        <tr height="670" bgcolor="#ffffff">
            <td width="15%" valign="top"><tiles:insertAttribute name="menu"/></td>
            <td width="85%" align="center"><tiles:insertAttribute name="body"/></td>
        </tr>
        <tr bgcolor="#ffffff">
            <td colspan=2><tiles:insertAttribute name="footer"/></td>
        </tr>
    </table>
    </body>
</html>

                menu.jsp
<%@page contentType="text/html; charset=euc-kr"%>
<ul>
   
    <li><a href="index.do">main</a></li>
    <li><a href="menu1.do">menu1</a></li>
    <li><a href="menu2.do">menu2</a></li>
    <li><a href="menu3.do">menu3</a></li>
</ul>

      body.jsp
<%@page contentType="text/html; charset=euc-kr"%>
<b>main page body !!!</b>

      body-menu1.jsp
<%@page contentType="text/html; charset=euc-kr"%>
<br />
<br />
menu 1 body location

      body-menu2.jsp
<%@page contentType="text/html; charset=euc-kr"%>
<br />
<br />
menu 2 body location

      body-menu3.jsp
<%@page contentType="text/html; charset=euc-kr"%>
<br />
<br />
menu 3 body location

      dispatcher-servlet.xml
<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context-3.0.xsd">

    <bean class="kr.spring.tiles.controller.IndexController"/>
    <bean class="kr.spring.tiles.controller.Menu1Controller"/>
    <bean class="kr.spring.tiles.controller.Menu2Controller"/>   
    <bean class="kr.spring.tiles.controller.Menu3Controller"/>

    <bean id="tilesConfigurer"
        class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">
        <property name="definitions">
            <list>
                <value>/WEB-INF/tiles2def/tilesdef.xml</value>
            </list>
        </property>
        <property name="preparerFactoryClass"
            value="org.springframework.web.servlet.view.tiles2.SpringBeanPreparerFactory" />
    </bean>

    <bean id="viewResolver"
        class="org.springframework.web.servlet.view.UrlBasedViewResolver">
        <property name="viewClass"
            value="org.springframework.web.servlet.view.tiles2.TilesView" />
    </bean>

</beans>

      web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <servlet>
    <servlet-name>dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>
  <filter>
    <filter-name>encodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
      <param-name>encoding</param-name>
      <param-value>EUC-KR</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>encodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
</web-app>

index.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<%
   response.sendRedirect(request.getContextPath()+"/index.do");
%>

================================결과값====================================


'스프링3.0' 카테고리의 다른 글

Missing artifact ojdbc:ojdbc:jar:14:compile  (0) 2012.05.18
스프링 3.0 AOP 에러. 문제 해결  (1) 2012.05.15
Spring3.0 DB  (0) 2012.05.14
Spring3.0 View error filedown  (0) 2012.05.14
Spring3.0 MVC 웹요청 처리  (0) 2012.05.14
Posted by 사라링

Tiles(레이아웃처리)

 | JSP
2012. 5. 8. 18:18

컴포지트 뷰(Composite View) 패턴을 구현한 라이브러리 중에서 현재 널리 사용되고 있는 라이브러리는 Tiles 2로서,

http://tiles.apache.org/download.html 사이트에서 최신버전을 다운로드 받을 수 있다. 현재 최신버전은 2.2.2이고 자바 5 또는 그 이상 버전에서 동작한다.

  1. 필요한 jar 파일을 WEB-INF/lib 디렉터리에 복사한다.
  2. web.xml에 초기화 코드 추가
  3. Tile 2 설정파일 작성
  4. 레이아웃 템플릿 JSP 파일 작성
  5. 템플릿을 사용하는 JSP 파일 작성

미니 코드

gate.jsp

1
2
3
<%@ page contentType="text/html; charset=euc-kr" %>
<%@ taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles" %>
<tiles:insertDefinition name="test" />

tiles-test.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
<?xml version="1.0" encoding="euc-kr" ?>
<!DOCTYPE tiles-definitions PUBLIC
"-//Apache Software Foundation//DTD Tiles Configuration 2.1//EN"
 
<tiles-definitions>
<definition name="test" template="/container.jsp">
<put-attribute name="title" value="Hello" />
<put-attribute name="header" value="/header.jsp" />
<put-attribute name="menu" value="/side.jsp" />
<put-attribute name="content" value="/content.jsp" />
</definition>
</tiles-definitions>

web.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
...
<servlet>
<servlet-name>tiles</servlet-name>
<servlet-class>org.apache.tiles.web.startup.TilesServlet</servlet-class>
<init-param>
<param-name>
org.apache.tiles.impl.BasicTilesContainer.DEFINITIONS_CONFIG
</param-name>
<param-value>
/WEB-INF/tiles-test.xml
</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
... 
</web-app>

container.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<%@ page contentType="text/html; charset=euc-kr" %>
<%@ taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles" %>
<html>
<head>
<title><tiles:getAsString name="title" /></title>
</head>
<body>
<table width="100%" border="1" cellpadding="0" cellspacing="0">
<tr>
<td colspan="2"><tiles:insertAttribute name="header" /></td>
</tr>
<tr>
<td valign="top"><tiles:insertAttribute name="menu" /></td>
<td valign="top"><tiles:insertAttribute name="content" /></td>
</tr>
</table>
</body>
</html>

TilesDispatchServlet을 사용하면 웹 요청 URI와 동일한 이름을 같는 Definition을 바로 클라이언트에 출력할 수 있다. TilesDispatchServlet을 사용하려면 <servlet>태그를 이용해서 TilesDispatchServlet을 web.xml 파일에 등록하고, <servlet-mapping>을 이용해서 TilesDispatchServlet이 처리할 확장자를 설정하면 된다.

web.xml

1
2
3
4
5
6
7
8
9
10
<servlet>
<servlet-name>TilesDispatchServlet</servlet-name>
<servlet-class>
org.apache.tiles.web.util.TilesDispatchServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>TilesDispatchServlet</servlet-name>
<url-pattern>*.tiles</url-pattern>
</servlet-mapping>

 

이 글은 스프링노트에서 작성되었습니다.


'JSP' 카테고리의 다른 글

정규표현식 공식 및 응용 .  (0) 2012.05.08
기본JDBC 만들기  (0) 2012.05.08
Propertise 한글 사용  (0) 2012.05.08
POI  (0) 2012.05.08
PAGING(sql)  (0) 2012.05.08
Posted by 사라링

BLOG main image
.. by 사라링

카테고리

사라링님의 노트 (301)
JSP (31)
J-Query (41)
JAVA (24)
VM-WARE (0)
디자인패턴 (1)
스크랩 (0)
스트러츠 (3)
안드로이드 (11)
오라클 (45)
우분투-오라클 (1)
이클립스메뉴얼 (6)
스프링3.0 (23)
자바스크립트 (10)
HTML5.0 (17)
정보처리기사 (1)
기타(컴퓨터 관련) (1)
문제점 해결 (3)
프로젝트 (2)
AJAX (4)
하이버네이트 (3)
트러스트폼 (11)
Jeus (2)
재무관리(회계) (5)
정규식 (5)
아이바티스 (8)
취미 (2)
소프트웨어 보안 관련모음 (0)
정보보안기사 (6)
C언어 베이직 및 프로그램 (3)
보안 관련 용어 정리 (2)
넥사크로 (6)
Total :
Today : Yesterday :