Applicationsナビゲータで、「ViewController」プロジェクト − 「WebContent」フォルダ − 「WEB-INF」フォルダの中にJSFの設定ファイルであるfaces-config.xmlがあります。まず、このファイルをダイアグラムエディタで編集し、ページ遷移を定義しましょう。
faces-config.xmlをダブルクリックして、中央のエディウィンドウで開き、エディタ下部にある「Diagram」タブをクリックするとダイアグラムエディタが現れます。右の「コンポーネント・パレット」より「Faces Page」をドラッグしてページアイコンを2つ配置したら、次に「Faces Navigation Case」をドラッグして各ページアイコン同士を線で結びます(図4)。この線はページ遷移を表しており、線の上にある文字列(ラベル)は遷移ケースIDを表しています。
図4:ページ遷移の定義 (画像をクリックすると別ウィンドウに拡大図を表示します)
ページ遷移が設定できたら、アプリケーションのスタートページを設定します。input.jspのページアイコン上で右クリックしてコンテキストメニューを表示し「Set as Default Run Target」を選択すると、ページファイル名の左横にアスタリスクが表示され、スタートページとして設定されます。
こうして作成されたページ遷移定義情報は、「XMLエディタ」タブをクリックすると表示されるfaces-config.xmlへ出力されます(リスト1)。このページ遷移定義情報のことをナビゲーションルールといいます。
リスト1:ページ遷移定義後のfaces-config.xml
<?xml version="1.0" encoding="windows-31j"?>
<!DOCTYPE faces-config PUBLIC
"-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN"
"http://java.sun.com/dtd/web-facesconfig_1_1.dtd">
<faces-config xmlns="http://java.sun.com/JSF/Configuration">
<navigation-rule>
<from-view-id>/input.jsp</from-view-id>
<navigation-case>
<from-outcome>show result</from-outcome>
<to-view-id>/result.jsp</to-view-id>
</navigation-case>
</navigation-rule>
<navigation-rule>
<from-view-id>/result.jsp</from-view-id>
<navigation-case>
<from-outcome>retry</from-outcome>
<to-view-id>/input.jsp</to-view-id>
</navigation-case>
</navigation-rule>
</faces-config>
ナビゲーションルールはJSFページごとに定義され、JSFページIDと1つ以上の遷移ケースの記述からなっています。遷移ケースとページの関係は、図5のとおりです。
図5:遷移ケースとページの関係
リスト1の<navigation-rule>要素がページ遷移を、<navigation-case>要素が遷移ケースを表しています。<from-view-id>要素は、どのJSFページの遷移を定義するかを示すもので、ページIDを指定します。また、<from-outcome>要素は遷移ケースIDを、<to-view-id>は遷移先を表しています。
|