Info*Engine のタスク
以下のトピックでは、Info*Engine タスクの概念、タスクの作成方法と使用方法、および Info*Engine がグループを表示するときに生成する XML 出力について説明します。
Info*Engine タスクとタスク規則について
Info*Engine のテキストベースのドキュメントはスタンドアロンタスクと呼ばれ、これを使用すると、Info*Engine 環境でデータの読み込みおよび操作を制御できます。カスタム Java アプリケーションまたは JSP ページを使用してデータに対するすべての操作 (データの読み込みや表示を含む) を実行する代わりに、タスクを使用して、データの読み込み処理および操作処理を表示処理から分離できます。
タスクを使用する利点の 1 つは、データ処理を 1 回実行した後に何回も繰り返し使用できるようにコードを編成できるということです。Info*Engine タスクコンパイラは Info*Engine タスクを解析し、それらのタスクから実行可能な Java クラスを生成します。これにより、タスクが呼び出されるたび解析して、解釈する必要がなくなるので、既存の Info*Engine タスクのパフォーマンスが向上します。さらに、Info*Engine タスクをスタンドアロンの Java アプリケーションおよび JSP ページに埋め込むことも容易になります。
タスクコンパイラは、以下の 3 つのステップによって実行可能な Java クラスを生成します。
1. タスクの XML ソースを解析し、タスクを実装する Java ソースコードを生成します。
2. Java コンパイラを呼び出し、生成された Java ソースから実行可能なクラスを生成します。
3. クラスローダーを呼び出し、Java コンパイラによって生成されたクラスを読み込み、インスタンス化します。
パフォーマンスの最適化のため、タスクコンパイラはコンパイルされたクラスをキャッシュに保持し、キャッシュされたクラスが最新のものであると判断した場合は常に、先の 2 つのステップをスキップします。タスクが最後にコンパイルされた後で更新されていることをコンパイラが検出すると、キャッシュされたクラスは破棄され、再生成されます。
|
最新の JSP 仕様にアップグレードするため、Info*Engine 代用構文を使用した JSP は、${...} 構文を使用できません。Info*Engine は、代わりに使用する必要がある代替構文 $(...) をサポートしています。
すべての Info*Engine タスクは、$(...) または ${...} のいずれかの構文で動作します。既存のタスクは、そのまま続行して操作され、変更する必要がありません。
既存の JSP は、新しい $(...) 構文を使用するために更新する必要があり、更新しなければ、コンパイルに失敗して予期したとおりに動作しなくなります。
|
特定のタスクの規則
タスクを作成するときは、以下の規則に従う必要があります。
• Info*Engine タスクは以下のような JSP page ディレクティブから開始します。
<%@page language="java" session="false"%>
追加のクラスが必要な場合は、この page ディレクティブの import 属性も含める必要があります。
• タスクでは、ファイルで使用されるカスタムタグライブラリを指定する必要があります。Info*Engine には、core ライブラリ、directory ライブラリ、および supplied ライブラリの 3 つのカスタムライブラリがあり、タスクでは core ライブラリと supplied ライブラリのみがサポートされています。ライブラリを識別するには、以下のような taglib ディレクティブを含めます。
<%@ taglib uri="http://www.ptc.com/infoengine/taglib/core"
prefix="ie" %>
|
uri 属性値は、ここで示されているとおりに指定する必要があります。プレフィックスの値は選択できます。ただし、対応するライブラリのタグのプリフィックスとして指定した値を使用しなければなりません。
|
• このタスクには、少なくとも 1 つの task webject が必要です。webject タグおよび param タグを使用して Webject を指定します。
• タスクには、Display Webject のような表示要素を含めることはできません。タスク内にある HTML タグは無視されます。
一般的なタスクの規則
適格で有効な Info*Engine タスクにするには、以下の基本規則に従う必要があります。
• Info*Engine カスタムタグおよび JSP タグには、小文字を使用する必要があります。たとえば、webject タグは webject と指定します。WEBJECT、Webject、webJecT などは無効です。
• コメントを使用すると、タスクで発生することを記録したり、タスクの一部をコンパイラがスキップするように指定したりすることができます。コメントで囲まれている Webject は実行されません。コメントは、タグ、宣言、またはその他のコメント内以外であれば、タスクのどこにでも置けます。
コメントは <!-- で始まり--> で終ります。
• 空の要素は、正しく構築する必要があります。後続の /> 文字 (スラッシュと山形括弧) がタスクの構文にある場合は、要素が空であるため一致する終了タグを探す必要がないことがタスクコンパイラに指示されます。たとえば、param カスタムタグは空の要素の構造を利用します。