2008年12月9日火曜日

Surf Dev. Guide [1.4 レンダラ]

1.4 レンダラ

新規テンプレートや新規コンポーネントとして定義するために行うのは、
Surfプラットホーム用のモデルオブジェクトを記述するXMLを書くことである。
モデルオブジェクトの役割は、Surfプラットホームに、コンポーネントの存在と
コンポーネントを処理する方法についての情報を与えることである。
とはいっても、後からテンプレートやコンポーネントがどう表示されるかの
情報は開発者が与える必要があります。そのために、「renderer」が必要になります。

少数の「renderer」が既製品として提供されていますが、自分用に追加してもかまいません。
サポートされる既製品の「renderer」は、以下のものである。

  • WebScript

  • Freemarker

  • JSP

  • HTML


1.4.1 WebScriptレンダラ

WebScriptレンダラは、最先端のレンダラであり、これを利用することで
(pre-render処理で)JavaScriptの、(presentation処理で)Freemarkerの、
という2つの利点を活用できることである。

もし以前に、Alfrescoの「web script engine」を利用してWebScriptを構築
したことがある方々は、既に知っていることと思います。
それ以外の場合は、 WebScriptガイドを見てください 。

Surfプラットホーム内では、WebScriptがコンポーネントを表示するためには
最も一般的に使用されます。自分のWebScriptを構築したならば、
/ WEB-INF/classes/alfresco/site-webscriptsのディレクトリに配置します。
少し経つと、コンテナがそれを拾い上げ、自分のモデルオブジェクトから
使用できるようになります。

WebScriptを使用することをコンポーネント側に指示するには、
WebScriptのURLプロパティに適切なurlを設定すること。

1.4.2 FreeMarkerレンダラー

Freemarkerレンダラは、テンプレートを表示する場合に最もよく使用されます。
また、WebScriptレンダラとの組み合わとして自動的に使用されますが、
それはコンポーネントに適用される場合だけです。テンプレートを作成すると、
Freemarkerを直接使用することができます。

Freemarkerテンプレートを作成していて、Alfrescoで使用している方々は
何ができるかについてはすでに熟知していることでしょう。そうでない場合は、
「Alfresco Freemarkerテンプレートガイド」を参照してください。

Surfプラットホーム内では、Freemarkerの「.ftl」テンプレートファイルは、
/ WEB-INF/classes/alfresco/templates ディレクトリに配置することができます 。
少し経つと、テンプレートプレセサがそれを拾い上げ、自分のモデルオブジェクトから
アクセスできるようになります。

テンプレート側にFreemarkerの「.ftl」ファイルを使用することを指示するために
「template-type」パラメータにファイルパス(/templatesからの相対)を
設定すること。

1.4.3 JSPレンダラー

JSPレンダラは、 コンポーネントまたはテンプレートのどちらかを表示するために
使用されており、Java言語の全てとSurfプラットホームのJavaAPIへのアクセスを提供
しています。使用するには、Javaプログラミングの知識が必要です。

JSPレンダラを使用するには、「.jsp」ファイルを作成して、web-applicationの
任意の場所に配置する必要があります。ただし、慣例として /app/components
ディレクトリの下に配置することをお勧めします。

一旦配置した後で、JSPのパス(web-application相対)に対してのレンダラプロパティ
を設定します。後の方で詳しく説明します。

0 件のコメント: