特集
2004/03/17 16:55 更新

特集:第1回 プログラミングレスを実現するexteNd Composer (4/5)
サーブレットのレイアウトを実施するXSLTの作成
ここまでで郵便番号検索サーブレットは完成していますが、このままアプリケーションサーバへデプロイしても、ブラウザに表示される結果は、単なるXMLデータでしかありません。今回のサンプルでは、ブラウザに表示して人の目で確認しますので、XSLTを使ってきれいなレイアウトで表示されるようにします。
XSLTファイルを作成するには、Composer Designerのカテゴリペインに表示されている「XSL」カテゴリを右クリックすると表示されるポップアップメニューから「New」を選択します。画面上にXSLリソース作成ウィザードが表示されます(画面19)。
ウィザードで最初の画面の「Create using Composer Editor」チェックボックスをオンにすると、名前を入力するためのテキストボックスが表示されます。ここでは「MyZipCodesStyle」と入力して、「Finish」ボタンをクリックします。するとComposer Designerの作業ペインに「MyZipCodesStyle」XSLファイルが表示されます。郵便番号検索Webサービスから取得した郵便番号と、距離がテーブル形式で表示できるように、XSLファイルを編集します。
作業ペインの右クリックで表示されるポップアップメニューから「View」→「As Text」を選択すると、XSLファイルがテキスト形式で見られます。ここには、<body>タグの中をリスト1と同じになるように書き換えます。
リスト1■ZipCodesStyle記述
<body>
<h2>GetNearbyZipCodesResult</h2>
<table border="1" cellspacing="0">
<tr>
<th>ZIP_CODE</th>
<th>RADIUS_MILES</th>
</tr>
<xsl:apply-templates select="//Locations"/>
</table>
</body>
|
続いて、上記bodyタグの中で呼び出しているテンプレート(リスト2)を最初のテンプレートの終了タグ</xsl:templeate>と、スタールシートの終了タグ</xsl:stylesheet>の間に挿入します。
リスト2■bodyタグで呼び出すテンプレート
<xsl:template match="Locations">
<tr>
<td>
<xsl:value-of select="ZIP_CODE"/>
</td>
<td>
<xsl:value-of select="RADIUS_MILES"/>
</td>
</tr>
</xsl:template>
|
「File」メニュー→「Save」でXSLファイルを保存します。これでXSLファイルの作成が完了です。郵便番号検索Webサービスの検索結果XMLをWebブラウザに表示する時に、この「MyZipCodesStyle」XSLファイルを適用することで、WebブラウザにはXMLファイルではなく、郵便番号検索結果がテーブル形式で表示されるXHTMLファイルとして出力されます。
[磯田義雄,ITmedia]
Copyright © ITmedia, Inc. All Rights Reserved.

