# feat 1.0 alpha ドキュメント

featの概要

ソースコードからのビルド

インストール

> web.xmlの設定

設定ファイルリファレンス

> フィーチャーの配置設定ファイル (feat-config.xml)
> 各フィーチャーの設定ファイル

HTTPリクエストの処理

> コマンド
> プリプロセス

クライアントへのレスポンス

テンプレートAPI

文字列リソース

エラー処理

例外

アプリケーションのビルド

> antタスク

## featの概要

featはウェブシステムのためのフレームワークです。開発の手間をできるだけ省こくとと、エンジニアとウェブデザイナの作業を分離することが目的です。

featはウェブサイトをフィーチャーという単位に分割して定義します。フィーチャーに含めるのは一つの機能だけです。例えばログイン機能、メッセージ送受信機能、商品リスト機能などです。機能に関連したコマンド(後述)、ブラウザに返されるレスポンスなどをひとまとめにしてフィーチャーに定義します。一つのフィーチャーに定義する機能をどれくらいの規模にするかは設計者に任せます。コピーライト表示のようなウェブページの一部となるもの、ウェブメールなどのように一つのアプリケーションになるくらい大きな機能もフィーチャーとして定義できます。

featはテンプレートエンジンも持っています。このテンプレートエンジンはHTML4.01の定義どおりのHTMLをテンプレートとして使うことができます。独自のヘンテコなタグや本文中に(ウェブデザイナから見たら)理解不能なスクリプトを埋め込む必要がありませから、テンプレート作成のために特別なソフトや知識を必要としません。テンプレートはHTML中のタグにid属性やclass属性を付けるだけで作ることができます。

## ソースコードからのビルド

ダウンロードしたソースパッケージを展開します。

build.template.propertiesをコピーしてbuild.propertiesというファイルを作ります。build.propertiesのプロパティbuildlib.j2eeをJ2EEのライブラリのあるディレクトリに設定します。

入手したソースコードの先頭ディレクトリ(build.xmlファイルのある場所)に移動しantを実行します。

> > ant

カレントディレクトリのfeat-1_0.jar(バージョンによってファイル名が変わります)が作成されたバイトコードです。

インストール

ソースコードからビルドするかバイナリ リリースのパッケージから取り出したfeat-1_0.jarをアプリケーションのWEB-INF/libに含めてください。

また、featが使用するライブラリは展開したパッケージのlibにありますので、この中のJARファイルを必要に応じてアプリケーションのlibにコピーしてください。

### web.xmlの設定

featで作成したアプリケーションへのリクエストはすべてfeat.v1.ActionServletが受け取ります。web.xmlにサーブレットとサーブレットマッピングを設定する必要があります。

        <servlet>
            <servlet-name>action</servlet-name>
            <servlet-class>feat.v1.ActionServlet</servlet-class>
            <init-param>
                <param-name>config</param-name>
                <param-value>/WEB-INF/feat-config.xml</param-value>
            </init-param>
            <load-on-startup>1</load-on-startup>
        </servlet>

        <servlet-mapping>
            <servlet-name>action</servlet-name>
            <url-pattern>*.cmd</url-pattern>
        </servlet-mapping>

ActionServletには初期化パラメータがあります。configパラメータで設定ファイルを指定できます。デフォルトは/WEB-INF/feat-config.xmlです。

<servlet-mapping>の<url-pattern>は注意が必要です。featはActionServletへのリクエストURIが

> http://ドメイン名/アプリケーション名/フィーチャー名/コマンド名.cmd

という形式であることを期待します。

- アプリケーション名

  ウェブアプリケーションの名前です。featではとくに制限はありません。/(ルート)でも問題ありません。

- フィーチャー名

  コマンドがどのフィーチャーのものかを特定します。フィーチャー名は、フィーチャー設定ファイルで設定します。

- コマンド名

  フィーチャー設定ファイルで定義したコマンドの名前です。コマンド名のあとの拡張子は<url-pattern>で指定できるパターンなら何でも良いのですが、名前の最後のピリオド以降を切り捨てたものがコマンド名となるのでピリオドは拡張子の前だけにしておいたほうが無難です。

$Id: index.html,v 1.3 2006/01/15 14:33:50 sugimotokenichi Exp $