詳細アイコン ナビゲーション・ケースの結果

JSF構成ファイルには、様々なナビゲーション・ルールと、各ルールに対する様々なナビゲーション・ケースを含めることができます。ユーザーがページ上のリンクをクリックしたときに使用されるナビゲーション・ケースを指定するには、各ケースに対してアクション・メソッド、結果あるいはその両方を指定します。

静的なナビゲーションを使用する場合は、ユーザーがボタンまたはリンクをクリックすると、定義済の固定されたJSFページが常に表示されます。ボタンまたはリンク自体によってアクション属性が使用され、文字列の結果が指定されます。

結果がラベルで表示されたJSFナビゲーション・ダイアグラム

ナビゲーション・ケースに結果を使用する場合は、JSFナビゲーション・ダイアグラム上にナビゲーション・ケースを描画すると、JDeveloperによって結果が自動的に追加されます。これは、結果の値を戻すためのリンクが必要であることを意味します。

アクションを処理するメソッドの記述

ページのナビゲーションを決定するためにビジネス・ロジックが必要な場合は、UICommandコンポーネント・タグのaction属性をアクション・メソッドにバインドします。アクション・メソッドは、結果文字列を戻す必要があります。この結果文字列は、JSF NavigationHandlerによって、faces-config.xmlファイルのナビゲーション・ケースの結果と比較され、次のページが決定されます。

アクション・メソッドは、パラメータなしのpublicメソッドで、結果を表すStringを戻す必要があります。JSFでは、ビジネス・ロジックとインタフェース・ロジックが明確に分離しています。アクション・メソッドは、イベントまたはコンポーネントにアクセスできません。したがって、アクション・イベント・メソッドを使用して、アクション・メソッドで必要となるユーザー・インタフェース・ロジックを処理します。

たとえば、ログイン・ページを作成します。ユーザーは、このページで各自の名前とパスワードを入力し、送信コマンド・ボタンをクリックします。名前とパスワードが有効な場合、ユーザーは初期画面ページに移動します。名前とパスワードが無効な場合、ユーザーは登録ページに移動します。

ページ上のcommandButtonタグのアクション属性では、Login Beanへのメソッド・バインディングを使用して、submitメソッドにアクセスします。

#{login.submit}

Login Beanのsubmit()メソッドは、次のようになります。

public String submit()
{  if (...)
    return "success";
  else
    return "failure";
}        

ログイン・ページに対するfaces-config.xmlファイルのナビゲーション・ルールには、successとfailureの結果に対応する2つのケースが含まれます。