JSFナビゲーション・ダイアグラム - JSFナビゲーション・ケース要素

「コンポーネント・パレット」次の選択「JSFダイアグラム・オブジェクト」次の選択「コンポーネント」次の選択「ヘルプ」

リンク元JSFページとリンク先JSFページ間にJSFナビゲーション・ケースを作成する際に使用します。方法

ナビゲーション・ケースはダイアグラム上で、JSFページ間の実線として表示されます。線のラベルは「結果(自)」文字列値を表します。

リンク元ページのJSFナビゲーション・ルールがない場合、JDeveloperによってナビゲーション・ルールが追加され、そのルールのナビゲーション・ケースが追加されます。

プロパティ・インスペクタでは、次の属性を変更できます。

アクション(自)
アクション・メソッドとして評価されるJSF EL式を入力します。このメソッドは、ナビゲーション処理を行うバッキングBeanのメソッド(例: #{backing_home.submit})で、Stringの結果値を返します。指定しない場合、実行されるアクションに関係なくナビゲーション・ルールが関連します。

結果(自)
結果文字列を入力します。関連するケースについて、この文字列は、UICommandコンポーネントで参照されるアクション・メソッドで返される値であるか、UICommandコンポーネントのactionプロパティの値である必要があります。指定しない場合は、設定または戻された結果に関係なくルールが関連します。

リダイレクト
デフォルトはfalse(現在のリクエストに対するレスポンスとして、必要なビューが単純にレンダリングされます)。JSFからリダイレクト・レスポンスを送信し、必要な新規のビューをブラウザがリクエストするようにする場合は、trueを選択します。これにより、ナビゲーション・ケースに<redirect/>が追加されます。

ナビゲーションをリダイレクトとして定義した場合、新しいビューのURLを反映するようにユーザーのブラウザのアドレス・フィールドが変更されます。直接レンダリングでは、アドレス・フィールドは更新されません。直接レンダリングのほうがリダイレクトよりも高速です。

ナビゲーション・ケースをリダイレクトとして設定するかどうかは、次の点を考慮して判断してください。

ビューID(至)
リンク先ページの識別子。識別子はViewIdPatternに準拠している必要があります。これは、既存のビューに完全一致している必要があります( /mypage.jspxなど)。

  1. 単一のナビゲーション・ルール
    この例では、結果がnewsのアクションについて、welcome.jspページの「View News」コマンドリンクからcurrentnews.jspページにナビゲートするルールを定義します。

    <navigation-rule>
      <from-view-id>/welcome.jspx</from-view-id>
      <navigation-case>
        <from-outcome>news</from-outcome>
        <to-view-id>/currentnews.jspx</to-view-id>
      </navigation-case>
    </navigation-rule>
    
  2. 1つのアクションから2つの結果が可能なナビゲーション・ルール
    次の例では、ユーザーとパスワードが認証されると、login.jspxページからwelcome.jspxページにナビゲートし、認証されない場合はlogin.jspxページに戻るルールを定義します。このルールは、"success"または"failure"の結果を戻す、login.jspxページからのアクションに対して有効です。
    <navigation-rule>
      <from-view-id>/login.jspx</from-view-id>
      <navigation-case>
        <from-outcome>success</from-outcome>
        <to-view-id>/welcome.jspx</to-view-id>
      </navigation-case>
      <navigation-case>
        <from-outcome>failure</from-outcome>
        <to-view-id>/login.jspx</from-outcome>
      </navigation-case>
    </navigation-rule>
    
  3. 同じ結果を戻す2つのアクションを使用するナビゲーション・ルール
    次の例では、login.jspxのルールを定義します。ユーザーがこのページで実行するアクションは、次の3つのいずれかになります。

    「Log in」コマンド・ボタンのアクション・プロパティは、User BeanのloginActionメソッドにバインドされています。ユーザー名とパスワードが有効な場合、このメソッドは結果として文字列"success"を戻します。ユーザー名とパスワードが無効な場合は、結果として文字列"failure"を戻します。
    「Register Now」コマンド・リンクは、User Beanのregisterメソッドにバインドされ、結果として文字列"success"を戻します。

    <navigation-rule>
      <from-view-id>/login.jspx</from-view-id>
      <navigation-case>
        <from-action>#{user.loginAction}</from-action>
        <from-outcome>success</from-outcome>
        <to-view-id>/welcome.jspx</to-view-id>
      </navigation-case>
      <navigation-case>
        <from-action>#{user.loginAction}</from-action>
        <from-outcome>failure</from-outcome>
        <to-view-id>/login.jspx</to-view-id>
      </navigation-case>
      <navigation-case>
        <from-action>#{user.register}</from-action>
        <from-outcome>success</from-outcome>
        <to-view-id>/register.jspx</to-view-id>
      </navigation-case>
    </navigation-rule>
    

JSFナビゲーション・ダイアグラマについて