問題

グローバルナビゲーションルールは、すべてのページに適用されるルールです。たとえば、すべてのページがアクセスできる「

logout

」ナビゲーションルールを適用します。 JSFでそれを設定する方法はありますか?

解決策

JSFでは、ナビゲーションルールでワイルドカードがサポートされていますが、「


** 」を使用してすべてのページに適用されるナビゲーションルールを指定できます。

<navigation-rule>
   <from-view-id>** </from-view-id>
   <navigation-case>
    <from-outcome>logout</from-outcome>
    <to-view-id>logout.xhtml</to-view-id>
   </navigation-case>
</navigation-rule>

この例では、Webアプリケーション内のすべてのページが「

logout

」ナビゲーションにアクセスできます。

別の例を参照してください。

<navigation-rule>
   <from-view-id>/customer/** </from-view-id>
   <navigation-case>
    <from-outcome>validation</from-outcome>
    <to-view-id>customer-validation.xhtml</to-view-id>
   </navigation-case>
</navigation-rule>

このルールは、接頭辞

/customer/

で始まるすべてのページに適用されます。

できます。

<from-view-id>/customer/** </from-view-id>

それは決して一致しません…​

<from-view-id>/cus** mer/</from-view-id>
<from-view-id>/c** sto** er/** </from-view-id>
<from-view-id>** /customer</from-view-id>


jsf


jsf2

リンク://タグ/ナビゲーションルール/[ナビゲーションルール]