本来、spindleなどを入れればそのままTapestryごとついてくるのですが
今回は、Tapestry本家からダウンロード・・・しようと思ったのですが
Tapestry本家からのダウンロードファイルでは必要ライブラリが足りない
みたいなので、以下の場所からTapestryのサンプルWebアプリをダウンロード。
http://howardlewisship.com/downloads/quick-start/
上記のページからtapestry-example-4.0.tar.gzを落とし解凍。その中にある
ライブラリを使用することにしました。(まとめて、WEB-INF/libにコピー)
まず、サンプルとして作成するWEBアプリの構造を作成。以下のようにします。
WEB-INF ├classes ├lib ├MyTapestrySample.application ├各HTMLテンプレートとpage仕様ファイル └web.xml
まずは、最低限必要なファイルの作成。
まずは、web.xml.こちらはほぼお決まりの内容です。
本当は、RedirectFilterなどいろいろ設定がいるみたいですが、
とりあえず今は無視!!(笑
<?xml version="1.0" encoding="Windows-31J"?> <!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>MyTapestrySample <!-- サーブレット設定 --> <servlet> <servlet-name>TapestryServlet <!-- Tapestryの場合は、デフォルトでこのサーブレットが全てのリクエストを受け付ける --> <servlet-class>org.apache.tapestry.ApplicationServlet <load-on-startup>1 </servlet> <servlet-mapping> <servlet-name>TapestryServlet <url-pattern>/app </servlet-mapping> </web-app>
続いて、アプリケーションの仕様を記述するapplicationファイル。
<?xml version="1.0" encoding="Windows-31J"?> <!DOCTYPE application PUBLIC "-//Apache Software Foundation//Tapestry Specification 4.0//EN" "http://jakarta.apache.org/tapestry/dtd/Tapestry_4_0.dtd"> <application name="MyTapestrySample" engine-class="org.apache.tapestry.engine.BaseEngine"> <meta key="org.apache.tapestry.output-encoding" value="Windows-31J"/> <meta key="org.apache.tapestry.template-encoding" value="Windows-31J"/> <!-- このアプリケーションに存在するページを記述する --> <page name="Home" specification-path="Home.page"/> </application>
Tapestryは各アプリケーションにHomeという名前のページが必要みたいなので、
HTMLテンプレートとページ仕様ファイルを追加。
(TapestryはHTMLとロジックの分離が徹底されていて、基本的に一画面につき
HTMLテンプレート・ページ仕様ファイル・ページコンポーネントファイルから
出来ています。)
<html> <head> <meta http-equiv="Content-Type" content="text/html;charset=Shift_JIS;"/> <title>トップページ </head> <body> テストページ <br/> </body> </html>
いたって普通のHTMLファイル。後は、このHTMLテンプレートのページ仕様ファイルを
作成。
<?xml version="1.0" encoding="Windows-31J"?> <!DOCTYPE page-specification PUBLIC "-//Apache Software Foundation//Tapestry Specification 4.0//EN" "http://jakarta.apache.org/tapestry/dtd/Tapestry_4_0.dtd"> <!-- 独自のページコンポーネントクラスを作成している場合は、 class属性にそのクラスをフルパッケージ名で指定する。 デフォルトのままで良い場合は、以下のようにTapestryの 基本ページクラスを用いる。
-
- >
とまあ、ここまで来てやっとこさ表示できる状態になりました。
あとはTOMCATなどのサーブレットコンテナにデプロイして、
確認です。無事画面にテストページって見えたらOK.
[あとがき]
私の環境では、ページ自体は表示されるんですが、
表示されたページのエンコーディングがutf-8になってしまいます・・・。
ためしに、上記の全てのファイルをutf-8に書き換えてxml宣言の
エンコード設定もutf-8にしてやってみたら今度は文字化けして
見れなくなりました・・・。何故????????
原因をご存知の方いらっしゃいましたら、ご教授お願いいたします。m(_ _)m
(個人的には、Shift_JISで設定してるんやからなんでそうならへんねん!!
って感じです・・)
とりあえず、ページは見れる状態になったので、
次は、jwcidの使い方を勉強してみます。