マネージド Bean から顔の構成全体にアクセスする必要があるこの状況があります。より具体的には、faces-config で指定されたナビゲーション ケースのリストにアクセスし、それらを循環する必要があります。それらを取得する方法はありますか?
NavigationCaseには、いくつかの有用な情報を明らかにするいくつかの優れたメソッドがあることがわかりました..問題は、これらの NavigationCase のリストを取得する方法です。
マネージド Bean から顔の構成全体にアクセスする必要があるこの状況があります。より具体的には、faces-config で指定されたナビゲーション ケースのリストにアクセスし、それらを循環する必要があります。それらを取得する方法はありますか?
NavigationCaseには、いくつかの有用な情報を明らかにするいくつかの優れたメソッドがあることがわかりました..問題は、これらの NavigationCase のリストを取得する方法です。
質問で指定したタグに基づいて、JSF 2 を使用していると言えるので、ConfigurableNavigationHandler
探しているものを取得するために使用できます。
を使用しConfigurableNavigationHandler#getNavigationCases()
てMap
ナビゲーション ケースを取得します。そのメソッドに関する詳細情報は、そのJavadocsから取得できます。
Map<String, Set<NavigationCase>>
キーが値で、値が Set であるa を返します。Set 内の各要素は、それに適用される NavigationCase です。
これは、そのメソッドを呼び出す例です。
FacesContext context = FacesContext.getCurrentInstance();
ConfigurableNavigationHandler navigationHandler = (ConfigurableNavigationHandler) context.getApplication().getNavigationHandler();
Map<String,Set<NavigationCase>> navigationCases = navigationHandler.getNavigationCases();
移動先のページの名前が既にわかっている場合は、その例を使用できます (ページ ファイルが next.xhtml であると仮定します)。
FacesContext context = FacesContext.getCurrentInstance();
ConfigurableNavigationHandler navigationHandler= (ConfigurableNavigationHandler) context.getApplication().getNavigationHandler();
navigationHandler.performNavigation("next");
以下も参照してください。