FeaturesPluginsDocs & SupportCommunityPartners

ページフラグメント

2007 年 5 月 [Revision number: V5.5.1-1]    

このチュートリアルでは、NetBeans Visual Web Pack 5.5 統合開発環境 (IDE) を使用して、2 つのページフラグメントを含むアプリケーションを作成します。一方のフラグメントには、アプリケーションのロゴを表示します。もう一方のフラグメントには、アプリケーション内のページ間を移動するためのリンクを表示します。

目次

ページフラグメントについて
ページフラグメントを含むページのデザイン
ヘッダーフラグメントの作成
ナビゲーションフラグメントの作成
2 ページ目へのフラグメントの追加
現在のページのリンクの無効化
その他の可能な操作: フッターフラグメントの追加
ページフラグメントの使用に関するヒント
  このページの情報は NetBeans 5.5 および 5.5.1 の Visual Web Pack が対象です。

このチュートリアルで使用している会社ロゴのサンプル
» sky.jpg

このチュートリアルでは、次のテクノロジとリソースを使用します。

JavaServer Faces コンポーネント /
Java EE プラットフォーム
動作可能Java EE 5* の場合、1.2
動作可能J2EE 1.4 の場合、1.1
Travel データベース 任意任意
BluePrints AJAX コンポーネントライブラリ 任意任意

* このチュートリアルの公開時点で Java EE 5 をサポートしていたのは Sun Java System Application Server だけです。

このチュートリアルは、Sun Java System Application Server PE 9.0 Update Release 1 と Tomcat 5.5.17 を使用することを想定しています。別のサーバーを使用している場合は、「リリースノート」と「FAQ」(または「日本語 FAQ」) で既知の問題やその回避策を確認してください。サポートされているサーバーと Java EE プラットフォームについては、「リリースノート」を参照してください。

ページフラグメントについて

ページフラグメントとは、ヘッダー、フッター、ナビゲーションバーなど、ほかのページで再利用できるページの一部分を指します。たとえば、グラフィックや検索フィールドなどの共通の要素をページフラグメントに入れて、そのフラグメントをアプリケーション内のすべてのページのヘッダーとして追加できます。また、会社名と著作権情報をページフラグメントに入れて、そのフラグメントをアプリケーションのフッターとして使用することもできます。ページフラグメントは、メインページと同様に、独自のページ Bean が関連付けられている JSP ページです。ただし、ページフラグメントのファイル拡張子は、jsp ではなく、jspf です。

ページフラグメントを含むページのデザイン

このチュートリアルでは、まずアプリケーションのホームページを作成します。次に、ヘッダーフラグメントとナビゲーションフラグメントを作成し、これらのフラグメントをホームページに追加します。
  1. 新しい Visual Web アプリケーションプロジェクトを「FragmentExample」という名前で作成します。

    図 1 に、このあとの手順で作成するページを示します。

    図 1:アプリケーションのホームページ 図 1:アプリケーションのホームページ
  2. 「パレット」の「レイアウト」セクションからページの左上隅に「ページフラグメントボックス」コンポーネントをドラッグします。

    「ページフラグメントを選択」ダイアログが表示されます。
  3. 「新規ページフラグメントを作成」をクリックします。「名前」フィールドに「CompanyLogo」と入力し、「了解」をクリックします。

    ページフラグメントがページに表示されます。ページフラグメントは、「プロジェクト」ウィンドウと、「アウトライン」ウィンドウの <div> ブロックにも追加されます。
  4. 「閉じる」をクリックして「ページフラグメントを選択」ダイアログを閉じます。

    ビジュアルデザイナー内の点線は、ページフラグメントのサイズを示しています。デフォルトのサイズは、幅 400 ピクセル、高さ 200 ピクセルです。
  5. ページの CompanyLogo ページフラグメントの下に、「ページフラグメントボックス」コンポーネントをもう 1 つ配置します。このページフラグメントには「Navigation」という名前を付けます。
  6. 「パレット」の「基本」セクションからページに「静的テキスト」コンポーネントをドラッグし、Navigation ページフラグメントの右側にドロップします。コンポーネントは、ページフラグメントの上ではなく、必ずページの上にドロップしてください。このコンポーネントのテキストを「Sky Company へようこそ」に変更します。
  7. コンポーネントがない場所でビジュアルデザイナーをクリックします。「プロパティー」ウィンドウで、「タイトル」プロパティーを「Sky Company ホーム」に変更します。

ヘッダーフラグメントの作成

この節では、図 2 に示す CompanyLogo フラグメントの内容を定義します。フラグメントの変更は、ページの中ではなく、フラグメント自体の中で行う必要があります。

図 2:CompanyLogo フラグメント
図 2:CompanyLogo ページフラグメント
  1. 会社ロゴのサンプルの JPEG ファイルをファイルシステムにまだ保存していない場合は、保存します。
  2. ビジュアルデザイナーで CompanyLogo フラグメントをダブルクリックして開きます。

    白の背景はページフラグメントのサイズを示します。
  3. 「プロパティー」ウィンドウで、「」プロパティーを「720px」に設定し「高さ」プロパティーを「120px」に設定します。
  4. 「パレット」の「基本」セクションから左上隅のページフラグメントに「画像」コンポーネントをドラッグします。
  5. 画像の「プロパティー」ウィンドウで、「url」プロパティーの省略符号ボタン (...) をクリックします。次の手順に従って会社ロゴをページフラグメントに追加します。

    1. ダイアログで、「ファイルを追加」をクリックします。
    2. 会社ロゴ (sky.jpg) を保存したフォルダに移動し、画像を選択します。
    3. 「ファイルを追加」をクリックします。画像がプロジェクトの resources ディレクトリにコピーされ、画像の相対 URL が表示されます。
    4. 「了解」をクリックします。
  6. 必要に応じて、sky.jpg をクリックし、ページフラグメントの境界内にドラッグして配置します。
  7. 「Page1」タブをクリックして、CompanyLogo フラグメントの更新内容を表示します。必要に応じて、ページ上のコンポーネントのレイアウトを調整します。

ナビゲーションフラグメントの作成

この節では、図 3 に示すナビゲーションフラグメントの内容を定義します。

図 3:ナビゲーションフラグメント
図 3:Navigation フラグメント
  1. ビジュアルデザイナーでナビゲーションフラグメントをダブルクリックして開きます。
  2. 「プロパティー」ウィンドウで、「」プロパティーを「150px」に設定し「高さ」プロパティーを「100px」に設定します。
  3. 「パレット」の「基本」セクションから、「ハイパーリンク」コンポーネントをドラッグし、ページフラグメント内にドロップします。ハイパーリンクのテキストを「ホーム」に設定します。
  4. ハイパーリンクの「プロパティー」ウィンドウで、「id」プロパティーを「homeLink」に設定し、「url」プロパティーを「/faces/Page1.jsp」に設定します。
  5. 「ハイパーリンク」コンポーネントをもう 1 つページフラグメントにドラッグします。このコンポーネントのテキストを「社内報」に設定します。
  6. ハイパーリンクの「id」プロパティーを「newsLink」に設定し、「url」プロパティーを「/faces/News.jsp」に設定します。

    News ページは、次の節で作成します。

2 ページ目へのフラグメントの追加

この節では、ヘッダーフラグメントとナビゲーションフラグメントを含む 2 ページ目を作成します。このページに背景色を設定して、ページのスタイル設定がページフラグメントに継承されることを確認します。
  1. 「プロジェクト」ウィンドウで、「FragmentExample」>「Web ページ」ノードを右クリックし、「新規」>「ページ」を選択します。新規ページに「News」という名前を付け、「完了」をクリックします。

    News ページがビジュアルデザイナーで開きます。図 4 に示すようなページをデザインします。

    図 4: News ページ 図 4: News ページ
  2. 「Page1」タブをクリックします。このページにある「ページフラグメント」コンポーネントと「静的テキスト」コンポーネントを News ページにコピーします。
  3. 「アウトライン」ウィンドウで、Ctrl キーを押しながら、div 要素と「静的テキスト」コンポーネントの両方を選択します。このとき、jsp:directive.include 子要素だけでなく、必ず div 要素自体を選択してください。
  4. 選択内容を右クリックし、ポップアップメニューから「コピー」を選択します。
  5. 「News」タブをクリックします。
  6. 「アウトライン」ウィンドウで、「News」>「page1」>「html1」>「body1」ノードを展開します。「form1」を右クリックし、「ペースト」を選択します。Page1.jsp からコピーしたコンポーネントがビジュアルデザイナーに表示されます。
  7. 静的テキストのテキストを「新 CEO 就任」に変更します。
  8. News ページの空白の部分をクリックします。「プロパティー」ウィンドウで、「タイトル」プロパティーを「Sky Company ニュース」に変更します。
  9. 「背景」プロパティーの省略符号ボタン (...) をクリックし、色選択用ダイアログを使用して色を淡黄色に設定します。

    News ページの背景色は、CompanyLogo フラグメントとナビゲーションフラグメントに継承されます。

現在のページのリンクの無効化

この節では、Page1 ページの「ホーム」リンクと News ページの「社内報」リンクを無効にするコードを追加します。
  1. 「Page1」タブをクリックし、ページの Java ソースコードを表示します。
  2. prerender メソッドに次のコードを追加します。

    コード例 1:現在のページのリンクを無効にするコード
    public void prerender() {
        Navigation navigationFragmentBean = (Navigation)getBean("Navigation");
        Hyperlink homeLink = navigationFragmentBean.getHomeLink();
        homeLink.setDisabled(true);
     }
  3. Java エディタを右クリックし、「インポートを修正」を選択します。IDE によって次のインポート文が追加されます。

    import com.sun.webui.jsf.component.Hyperlink;
  4. 「News」タブをクリックし、ページの Java ソースコードを表示します。
  5. prerender メソッドに次のコードを追加します。

    コード例 2:現在のページのリンクを無効にするコード
    public void prerender() {
        Navigation navigationFragmentBean = (Navigation)getBean("Navigation");
        Hyperlink newsLink = navigationFragmentBean.getNewsLink();
        newsLink.setDisabled(true);
     }
  6. Java エディタを右クリックし、「インポートを修正」を選択します。IDE によって次のインポート文が追加されます。

    import com.sun.webui.jsf.component.Hyperlink;
  7. アプリケーションを実行します。

    「ホーム」リンクと「社内報」リンクが正常に動作することを確認します。

その他の可能な操作:フッターフラグメントの追加

このチュートリアルでは、簡単な 2 ページ構成のアプリケーションでページフラグメントを使用する方法を示しました。実際のアプリケーションには、さらに多くのページがあります。

試してみましょう。 FragmentExample アプリケーションに 3 ページ目を追加してみてください。Navigation ページフラグメントに別の「ハイパーリンク」コンポーネントを追加し、ハイパーリンクの「url」プロパティーを設定します。

試してみましょう。 ページフラグメントは、会社の著作権情報の表示にも使用できます。各ページの下部に、幅 720px、高さ 100px のページフラグメントを追加してみてください。「Copyright 1994-2006 Sky Company」などの著作権情報を記述します。

ページフラグメントの使用に関するヒント

この節では、ページフラグメントを使用する際の考慮事項を示します。

  • このチュートリアルで使用した例では、「ハイパーリンク」コンポーネントを使用し、その「url」プロパティーを設定しました。この方法は簡単なのでお勧めします。この方法では、「immediate」プロパティーやページナビゲーションを設定する必要がありません。別の方法として、「ボタン」コンポーネントまたは「ハイパーリンク」コンポーネントを含むページフラグメントを作成し、その「action」プロパティーを設定することもできます。この方法の場合は、「immediate」プロパティーを設定し、フラグメントを使用する各ページのページナビゲーションを設定する必要があります。

    ページが多数あり、ボタンとハイパーリンクのナビゲーション結果が各ページで同じである場合は、ページナビゲーションエディタを使用せずに、ページナビゲーションのソースファイルを編集する方法もあります。ソースファイルを編集するには、ページナビゲーションエディタのツールバーにある「XML」ボタンをクリックします。ソースエディタで、<from-view-id> タグのあとの特定のページ名 (/Page1.jsp など) を /* などのワイルドカード値に置き換えます。
  • このチュートリアルで示したとおり、ページフラグメントの高さと幅を指定するときは、ピクセル単位 (100px など) を使用するのが最適です。パーセンテージ (100% など) は Firefox Web ブラウザでは正常に機能しますが、Internet Explorer 6.0 では機能しません。


更新日: 2007 年 5 月 24 日


Bookmark this page

del.icio.us furl simpy slashdot technorati digg
Companion
Projects:
MySQL Database Server   Open JDK: an Open SourceJDK   GlassFish Community: an Open Source Application Server    Mobile & Embedded Community    Open Solaris   java.net - The Source for Java Technology Collaboration   Virtual Box - full virtualizer  Open ESB - The Open Enterprise Service Bus Powered by