tell me more iconナビゲーション・ケースの結果

JSF構成ファイルにはいくつかのナビゲーション・ルールがあり、それぞれのルールに対していくつかのナビゲーション・ケースが含まれています。 ここまでの例で、JFSナビゲーション・ダイアグラムを作成し、最新のキュー・カードへナビゲーション・ケースを追加した際に、次のナビゲーション・ルールとナビゲーション・ケースが faces-config.xmlに自動で作成されました。

                         
<navigation-rule>
  <from-view-id>/Login.jsp</from-view-id>
  <navigation-case>
    <from-outcome>success</from-outcome>
    <to-view-id>/Success.jsp</to-view-id>
  </navigation-case>
  <navigation-case>
    <from-outcome>failure</from-outcome>
    <to-view-id>/Failure.jsp</to-view-id>
  </navigation-case>
</navigation-rule>
                      

ナビゲーション・ルールで、ルールには Login.jspページからほかの2つの Success.jspページと Failure.jspページへ移動する方法が指定されます。 つまり、ナビゲーション・ルールは2つのナビゲーション・ケースまたは2つの出力結果をもつということです。

Login.jspページのコマンド・ボタンをユーザーがクリックした際に、どのナビゲーション・ケースが使用されるかを指定するには、アクション・メソッドか出力結果(またはその両方)を各ケースに対して指定できます。

  • 出力結果は、特定の文字列が返された場合にのみ、同じナビゲーション・ケースにしたがうように指定します。 これは、静的なナビゲーションの形式に当たります。 ユーザーがボタンまたはリンクをクリックするたびに、定義されて固定されたJSFページがかならず表示されます。 ボタンまたはリンク自体は、文字列の出力結果を指定するために action属性を使用します。 たとえば、 <commandButton value="Click" action="success"/>です。

  • アクション・メソッドは、アクション・メソッドでリンクを処理した場合にのみ、同じナビゲーション・ケースへしたがうように指定します。 また、出力結果を決定するロジックをいくつか実行し、出力結果を返します。 ボタンまたはリンク自体は、 action属性を使用して、論理的な出力結果を返すアクション・メソッドを参照するメソッド式を指定します。 たとえば、 <commandButton value="Click" action="#{somebean.somemethod}"/>です。

  • アクション・メソッドと出力結果を使用して、指定されたアクション・メソッドがリンクを処理した場合と、特定の文字列の出力結果を返した場合にのみ、このナビゲーション・ケースへしたがうように指定します。

アクション・メソッドの記述と参照

この例では、アクション・メソッドの出力結果を使用して、 Login.jspページのLoginボタンをユーザーがクリックした場合に表示するページを決定します。 出力結果が successの場合、 Success.jspページが表示されます。出力結果が failureの場合、 Failure.jspページが表示されます。

ボタンをクリックした際にコマンド・ボタンでアクション・メソッドを呼び出すには、ボタンの action属性のメソッド式を使用してマネージドBeanのメソッドを参照します。

コマンド・ボタンをダブルクリックしてBind Action Propertyダイアログを使用すると、Oracle JDeveloperは次を自動実行します。

  • 起動アクション・メソッドの LoginInfo.javaソース・ファイル内での作成
                                 
    public Object commandButton1_action() {
        // Add event code here...
        return null;
    }
                              
  • コマンド・ボタンの action属性のメソッド式を使用したアクション・メソッドへのバインド
                                 
    <h:commandButton value="Login" binding="#{backing_login.commandButton1}"
                     id="commandButton1"
                     action="#{backing_login.commandButton1_action}"/>
                              

アクション・メソッドは、パラメータを受け入れずにObjectを返すパブリック・メソッドである必要があります。パブリック・メソッドは、JSF NavigationHandlerがあとで faces-config.xmlファイル内のナビゲーション・ケースにある出力結果と論理的な出力結果を比較し、どのページを次に表示するかについて決定するメソッドです。 したがって、生成したアクション・メソッドに追加するイベント・コードは、 "success""failure"の両方を返し、 Login.jspページが返す2つの実行可能なナビゲーション・ケースの出力結果を網羅することになります。