高度なカスタマイズ > Info*Engine ユーザーガイド > Info*Engine JSP ページ
  
Info*Engine JSP ページ
以下のトピックでは、Info*Engine JSP ページの概念と Info*Engine カスタムタグの使用方法について説明します。
Info*Engine JavaServer Pages の作成
JSP (Java サーバーページ) は Java Platform, Enterprise Edition (Java EE) の中心的なテクノロジーであり、EJB (Enterprise Java Beans) をベースとしたソリューションです。Info*Engine ではエンタープライズカスタム Java アプリケーションの開発がサポートされており、Info*Engine サーブレットエンジンの拡張機能として JSP プロセッサが提供されています。JSP プロセッサは JSP ページをサーブレットに動的に変換します。
通常、JSP ページは追加の JSP タグと埋め込み Java コードを持つ HTML ページです。ただし、必ずしも JSP タグや埋め込み Java を含める必要はなく、HTML だけで構成されているページも正当な JSP ページです。
多くの場合、Info*Engine と対話する JSP ページは、一連の簡単な JSP タグとカスタム Info*Engine タグで構成されています。Info*Engine タグでは、このページにアクセスしたときに実行される Webject を定義します。たとえば、以下の DisplayTable.jsp ページでは 1 つの要素を含むグループが作成され、テーブルフォーマットで結果が表示されます。
<%@page language="java"  session="false"
  errorPage="IEError.jsp"%>
<%@ taglib uri="http://www.ptc.com/infoengine/taglib/core" prefix="ie" %>
<html>
<head>
<title>JSP Display-Table</title>
</head>
<body bgcolor="#FFFFFF">
<h3> I*E Display-Table JSP Using Taglibs <h3>
<ie:webject name="Create-Group" type="GRP">
  <ie:param name="ELEMENT"
     data="name=myGroup2:email=xxx@xxx.com:address=PTC"/>
  <ie:param name="GROUP_OUT" data="newGroup2"/>
</ie:webject>
<ie:webject name="Display-Table" type="DSP"/>
</body>
</html>
* 
最新の JSP 仕様にアップグレードするため、Info*Engine 代用構文を使用した JSP は、${...} 構文を使用できません。Info*Engine は、代わりに使用する必要がある代替構文 $(...) をサポートしています。すべての Info*Engine タスクが、$(...) または ${...} の構文のいずれかで動作します。既存のタスクは、そのまま続行して操作され、変更する必要がありません。既存の JSP は、新しい $(...) 構文を使用するために更新する必要があり、更新しなければ、コンパイルに失敗して予期したとおりに動作しなくなります。
詳細については、Info*Engine タスクエディタの使用を参照してください。
Info*Engine JSP ページの保存
Windchill Web アプリケーションのルートは <Windchill>/codebase であるため、すべての Info*Engine JSP がその codebase ディレクトリ内のどこかに保存される必要があります。JSP を整理するためにディレクトリ階層を作成することをお勧めします (<Windchill>/codebase/com/company/ など)。
Info*Engine JSP ページへのアクセス
インストーラでは、Info*Engine JSP ページを要求するための URL プリフィックスとして使用するアプリケーション URL も指定されます。Info*Engine JSP ページを実行するリクエストを含む URL を生成するには、以下の作業を実行します。
ホスト名およびポート (ポートがデフォルトでない場合) と、Info*Engine のインストール時に指定されたアプリケーション URL プリフィックスを含めます。デフォルトのアプリケーション URL は Windchill です。
codebase ディレクトリを基準とする JSP ページの相対パスに名前を付けます。
ページに渡すオプションの値を指定します。
myServer というホスト名と Windchill というアプリケーション URL を使用して com/company/DisplayTable.jsp ページを実行するには、以下の URL を指定します。
http://myServer/Windchill/com/company/DisplayTable.jsp
以下のような出力がブラウザに表示されます。
通常、JSP をサポートしている Web サーバーは、.jsp 拡張子が付いたファイル名を JSP ページとして認識するように設定されています。URL がこのタイプのファイルを参照する場合、Web サーバーは JSP プロセッサに URL を渡します。JSP プロセッサは、このページに対応するサーブレットがあるかどうかを確認します。サーブレットがない場合は自動的にページをサーブレットに変換し、そのサーブレットを実行します。ページが HTML のみで構成されている場合、生成されるサーブレットは単純であり、ブラウザに HTML を送信する 1 つまたは複数の Java プリントステートメントで構成されます。一方、JSP ページに埋め込み Java コードが含まれている場合、そのコードは生成されるサーブレットに直接組み込まれます。
JSP プロセッサに渡された URL に対応するサーブレットがすでに存在することが検出された場合、JSP プロセッサは最後のサーブレット生成以降にページが変更されたかどうかを確認します。最後のサーブレット生成以降にページが更新されたことが検出された場合、プロセッサはサーブレットを自動的に再生成します。それ以外の場合は、あらかじめ生成されたサーブレットを再利用します。
Info*Engine JSP ページの作成
Info*Engine の各 JSP ページには、以下の項目を含める必要があります。
一般的なページ特性を定義する標準 JSP page ディレクティブ。
Info*Engine カスタムタグを含んでいるタグライブラリを識別する標準 JSP taglib ディレクティブ。
このディレクティブは、ライブラリ内のカスタムタグを使用する任意の行の前に配置する必要があります。
Info*Engine カスタムタグ。反復使用する関数をカプセル化する一連のカスタム操作へのアクセスを提供します。
これらのカスタムタグにより、Webject を実行する構文と、JSP を構築するための構造が提供されます。
適格で有効な Info*Engine JSP ページを作成するには、以下の基本的な JSP 規則に従う必要があります。
Info*Engine カスタムタグおよび JSP タグには、小文字を使用する必要があります。たとえば、webject タグは webject と指定します。WEBJECT、Webject、webJecT などは無効です。
コメントを使用すると、ページで発生することを記録したり、ページの一部をコンパイラがスキップするように指定したりできます。コメントで囲まれている Webject は実行されません。コメントは、タグ、宣言、またはその他のコメント内以外であれば、タスクのどこにでも置けます。
コメントは、<!-- で始まり、--> で終ります。
空の要素は、正しく構築する必要があります。JSP 構文の後続の /> 文字 (スラッシュの後に右側山形括弧) は、要素が空であり、一致する終了タグを探す必要がないことを示します。たとえば、param カスタムタグは空の要素の構造を利用します。
スクリプトレット、定義式、宣言、ディレクティブ、および Info*Engine カスタムタグ要素を使用するためのその他の規則については、Info*Engine カスタムタグリファレンスを参照してください。
DisplayTable.jsp ページの例には、以下の標準 JSP ディレクティブが含まれています。
標準ページディレクティブとしての IEError.jsp。サンプルエラーページへの参照が含まれています。
<%@page language="java"  session="false"
  errorPage="IEError.jsp"%>
必須プリフィックスとしての ie プリフィックス。このプリフィックスは、core タグライブラリに属するものとしてタグを識別します。core タグライブラリは、JSP ページで使用できる一般的なカスタムタグを提供します。
<%@ taglib uri="http://www.ptc.com/infoengine/taglib/core"
           prefix="ie" %>
前の DisplayTable.jsp ページには、webject および param カスタムタグも含まれています。
webject タグは、Create-Group および Display-Table Webject を指定します。
param タグは、Webject パラメータおよびパラメータ値を設定します。
Create-Group Webject の場合、パラメータは出力グループの名前とそのグループ内の要素の属性および値を定義します。
Info*Engine JSP ページには、サポートされている HTML および JSP タグも含めることができます。このガイドでは、使用可能な HTML および JSP タグについて説明していません。サポートされているタグについては、以下のサイトにアクセスしてください。
http://java.sun.com
http://www.w3.org/
JSP ページからのタスクの実行
JSP ページには任意の Webject を組み込むことができますが、データの生成および操作を行う Webject とデータを表示する Webject を切り離すことが必要な場合があります。これを行うには、スタンドアロンタスクと呼ばれるテキストベースのドキュメントを作成し、Info*Engine の task タグを使用してタスクを実行します。task タグの uri 属性で実行するタスクを指定します。
Info*Engine のタスクでは、タスクの作成方法と使用方法について説明します。