Webアプリケーションへの組み込み

サーブレットとしてZPTエンジンをWebアプリケーションに組み込むことで、 Webアプリケーションの画面テンプレートとしてZPTエンジンを利用することができます。

ライブラリの追加

ZPTエンジンを利用するにはFreyjaのライブラリをWebアプリケーションのWEB-INF/libに配置する必要があります。

必要なライブラリは以下のとおりです。

  • freyja-1.0.17.jar
  • commons-beanutils-1.7.0.jar
  • commons-logging-1.0.4.jar
  • janino-2.5.10.jar

    これらのJarとしては以下のWarファイルに含まれているものを使うのが簡単です。

  • http://maven.seasar.org/maven2/net/skirnir/freyja/freyja/1.0.17/freyja-1.0.17-sample.war

    Maven2対応のWebアプリケーションでは以下の設定をWebアプリケーションのpom.xmlに追加することで 依存ライブラリを自動的に取得することができます。

    <dependencies>
      ...
      <dependency>
        <groupId>net.skirnir.freyja</groupId>
        <artifactId>freyja</artifactId>
        <version>1.0.17</version>
      </dependency>
      ...
    </dependencies>
    

    なおFreyjaのJarはセントラルリポジトリではなくThe Seasar Projectの Mavenリポジトリにありますので、以下の設定をpom.xmlに追加しておく必要があります。

    <repositories>
      ...
      <repository>
        <id>maven.seasar.org</id>
        <name>The Seasar Foundation Maven2 Repository</name>
        <url>http://maven.seasar.org/maven2</url>
      </repository>
      ...
    </repositories>
    

web.xmlの設定

サーブレットとしてZPTをハンドリングするクラスの実態はFreyjaServletですので、 通常のサーブレットを利用する場合と同じようにWebアプリケーションのweb.xmlに FreyjaServletのための<servlet>タグと<servlet-mapping>タグを追加して下さい。

<servlet>
  <servlet-name>zpt</servlet-name>
  <servlet-class>
    net.skirnir.freyja.webapp.FreyjaServlet
  </servlet-class>
  <init-param>
    <param-name>tagEvaluator</param-name>
    <param-value>
      net.skirnir.freyja.zpt.MetalTagEvaluator
    </param-value>
  </init-param>
  <init-param>
    <param-name>expressionEvaluator</param-name>
    <param-value>
      net.skirnir.freyja.zpt.webapp.ServletTalesExpressionEvaluator
    </param-value>
  </init-param>
  <init-param>
    <param-name>templateRoot</param-name>
    <param-value></param-value>
  </init-param>
  <init-param>
    <param-name>pageEncoding</param-name>
    <param-value>UTF-8</param-value>
  </init-param>
  <init-param>
    <param-name>requestEncoding</param-name>
    <param-value>UTF-8</param-value>
  </init-param>
  <init-param>
    <param-name>responseEncoding</param-name>
    <param-value>UTF-8</param-value>
  </init-param>
  <init-param>
    <param-name>contentType</param-name>
    <param-value>text/html; charset=UTF-8</param-value>
  </init-param>
  <init-param>
    <param-name>useShiftJISInsteadOfWindows31J</param-name>
    <param-value>false</param-value>
  </init-param>
  <init-param>
    <param-name>
      tagEvaluator.render.overwrite-content-type-meta-tag
    </param-name>
    <param-value>false</param-value>
  </init-param>
  <init-param>
    <param-name>transcriptVariablesToRequest</param-name>
    <param-value>false</param-value>
  </init-param>
  <init-param>
    <param-name>variableResolverFactory</param-name>
    <param-value></param-value>
  </init-param>
  <load-on-startup>0</load-on-startup>
</servlet>

<servlet-mapping>
  <servlet-name>zpt</servlet-name>
  <url-pattern>*.zpt</url-pattern>
</servlet-mapping>

上の例では、*.zptというリクエストにFreyjaServletが結び付けられます。 またZPTテンプレートの文字エンコーディング、レンダリング結果のHTMLの文字エンコーディングは いずれもUTF-8です。

FreyjaServletの設定の詳細については 設定リファレンスを参照して下さい。