<div class="note"> 필자가 사용한 환경은 tomcat 5.0.28, ant 1.6.5, jdk 1.5.0_05이다. tapestry를 사용하기 위해서는 ant 1.6.2이상, jdk1.5.x가 필수이다. </div>

작업에 앞서 필요한 작업#

1. 다음의 URL에서 tapestry를 다운로드후 압축을 푼다. http://jakarta.apache.org/site/downloads/downloads_tapestry.cgi

필자의 경우 다음과 같은 경로를 사용했다. d:\webframework\tapestry-4.0-rc-1

2. 다음의 URL에서 hivemind를 다운로드후 압축을 푼다 http://jakarta.apache.org/site/downloads/downloads_hivemind.cgi

필자의 경우 다음과 같은 경로를 사용했다. d:\webframework\hivemind-1.1

3. tapestry에서 필요한 관련 라이브러리를 가져오기 위해 다음과 같은 작업을 수행한다.

  • d:\webframework\tapestry-4.0-rc-1\config\build.properties파일을 열어 hivebuild.dir값을 2번 과정의 경로로 수정한다. 필자의 경우 다음과 같다. hivebuild.dir=d:/webframework/hivemind-1.1/hivebuild
  • d:\webframework\tapestry-4.0-rc-1 에서 ant 빌드를 수행한다. 명령창에서 ant 를 타이핑하고 엔터를 누르면 된다.
  • 위 과정을 거치면 d:\webframework\tapestry-4.0-rc-1밑에 ext-package\lib 가 생성이 되고 해당 디렉토리밑에 관련 jar파일이 모두 다운로드가 된다.

톰캣에 해당 context등록하기#

4. 필자의 경우 프로젝트명을 tapestry라고 지정하고 다음의 경로에 프로젝트를 생성했다. D:\work\workspace_myeclipse\tapestry

톰캣에 해당 프로젝트를 context로 등록하기 위해 conf\Catalina\localhost 밑에 tapestry.xml파일을 생성하고 다음처럼 작성했다.

<Context path="/tapestry" docBase="D:/work/workspace_myeclipse/tapestry" 
workDir="D:/work/workspace_myeclipse/tapestry/work" reloadable="true" />

<div class="note"> 필자의 경우 3번 과정에서 다운로드된 jar파일중에 다음과 같은 파일들만 WEB-INF\lib밑에 두었다. 필요한 jar파일은 그때그때 상황에 따라 추가하길 바란다. </div> libs.jpg

프로젝트내 기본적인 파일 생성#

5. web.xml파일을 생성하고 다음과 같이 작성한다.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app
      PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
      "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>
  <display-name>Tutorial: HelloWorld</display-name>
  <servlet>
    <servlet-name>app</servlet-name>
    <servlet-class>org.apache.tapestry.ApplicationServlet</servlet-class>
    <load-on-startup>0</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>app</servlet-name>
    <url-pattern>/app</url-pattern>
  </servlet-mapping>
</web-app>

6. Home.html파일을 생성하고 다음과 같이 작성한다. 여기서 Home.html파일을 작성하는 이유는 tapestry는 디폴트 페이지를 자동으로 Home.html파일을 검색하기 때문이다.

<html>
  <head>
    <title>
      Tutorial: HelloWorld
    </title>
  </head>
  <body>
    <h1>
      HelloWorld Tutorial
    </h1>

    <p>
      The current data and time is:
      <strong>
        <span jwcid="@Insert" value="ognl:new java.util.Date()">
          June 26 2005
        </span>
      </strong>
    </p>
    <p>
      <a href="#" jwcid="@PageLink" page="Home">
        refresh
      </a>
    </p>
  </body>
</html>

  • 여기서 <span> 태그는 tapestry를 위한 placeholder의 역활을 담당한다. jwcid는 tapestry의 컴포넌트를 지정하기 위해 사용하는 속성값이다. 여기서 @Insert라는 값은 Insert컴포넌트의 인스턴스를 지칭하는것이다. 이 Insert 컴포넌트는 텍스트의 삽입을 담당하는 것으로 해당 위치에 value값에 의해 생성되는(여기서는 new java.util.Date()로 인해 반환되는) 값을 화면에 출력한다.
  • pageLink 컴포넌트는 <a> 태그를 생성하는 담당하는 것으로 page속성값으로 넘어온 값을 링크를 생성한다. 위와 같은 경우 결과적으로는 <a href="http://localhost:8080/tapestry/app?service=page&page=Home">refresh</a> 와 같은 결과를 생성한다.

7. 웹 브라우저에서 http://localhost:8080/tapestry/app 를 실행하면 다음과 같은 화면을 볼수 있다. 혹시나 Home.html파일을 생성하지 않은 경우에는 http://localhost:8080/tapestry/app?service=page&page=해당 html파일명 형식으로 접근할수 있다. introView.jpg

tapestry에 대해서 좀더 알아보자

Add new attachment

Only authorized users are allowed to upload new attachments.

List of attachments

Kind Attachment Name Size Version Date Modified Author Change note
jpg
introView.jpg 143.6 kB 2 15-Dec-2005 10:55 이동국
jpg
libs.jpg 86.3 kB 1 15-Dec-2005 10:51 이동국
« This page (revision-10) was last changed on 06-Apr-2006 09:45 by 이동국