Как получить доступ к навигационному регистру конфигурации лиц из класса Java

У меня есть такая ситуация, когда мне нужно получить доступ ко всей конфигурации лиц из управляемых компонентов. В частности, мне нужно получить доступ к списку случаев навигации, которые были указаны в Faces-config, и просмотреть их. Есть ли способ получить их?

Я видел, что У NavigationCase есть несколько хороших методов, которые раскрывают некоторую полезную информацию. Теперь вопрос в том, как получить список этих NavigationCase.


person Arijit Datta    schedule 08.02.2015    source источник


Ответы (2)


Основываясь на тегах, которые вы указали в своем вопросе, я могу сказать, что вы используете JSF 2, поэтому вы можете использовать ConfigurableNavigationHandler, чтобы получить то, что ищете.

Используйте ConfigurableNavigationHandler#getNavigationCases() для получения Map случаев навигации, вы можете получить дополнительную информацию об этом методе из его Javadocs:

Возвратите Map<String, Set<NavigationCase>>, где ключи — это значения, а значения — это Set, где каждый элемент в 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");

См. также:

person Tarik    schedule 08.02.2015

попробуйте этот код:

FacesContext ctxt = FacesContext.getCurrentInstance();
ConfigurableNavigationHandler configNavHandler = (ConfigurableNavigationHandler)ctxt.getApplication().getNavigationHandler();
NavigationCase navCase = configNavHandler.getNavigationCase(ctxt,null,"Page");
String toViewId = navCase.getToViewId(ctxt);
person Mauro Midolo    schedule 27.05.2015