JSFでグローバルナビゲーションルールを追加する方法は?
問題
グローバルナビゲーションルールは、すべてのページに適用されるルールです。たとえば、すべてのページがアクセスできる「
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>