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


特集:第1回 プログラミングレスを実現するexteNd Composer (4/5)


サーブレットのレイアウトを実施するXSLTの作成

 ここまでで郵便番号検索サーブレットは完成していますが、このままアプリケーションサーバへデプロイしても、ブラウザに表示される結果は、単なるXMLデータでしかありません。今回のサンプルでは、ブラウザに表示して人の目で確認しますので、XSLTを使ってきれいなレイアウトで表示されるようにします。

 XSLTファイルを作成するには、Composer Designerのカテゴリペインに表示されている「XSL」カテゴリを右クリックすると表示されるポップアップメニューから「New」を選択します。画面上にXSLリソース作成ウィザードが表示されます(画面19)。

ph-createXSL1.gif

画面19■XSLリソース作成ウィザード


 ウィザードで最初の画面の「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ファイルとして出力されます。

前のページ | 1 2 3 4 5 | 次のページ

[磯田義雄,ITmedia]

Copyright © ITmedia, Inc. All Rights Reserved.