新規テンプレートや新規コンポーネントとして定義するために行うのは、
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 件のコメント:
コメントを投稿