如何从Java类访问faces配置的导航案例

时间:2015-02-08 13:57:58

标签: jsf-2 faces-config facescontext

我有这种情况,我必须从托管bean访问整个面部配置。更具体地说,我需要访问faces-config中指定的导航案例列表并循环浏览它们。 有没有办法得到它们?

我看到NavigationCase有一些很好的方法可以揭示一些有用的信息。现在问题是,如何获取这些NavigationCase的列表

2 个答案:

答案 0 :(得分:1)

根据您在问题中指定的标签,我可以说您使用的是JSF 2,因此您可以使用ConfigurableNavigationHandler来获取您要查找的内容。

使用ConfigurableNavigationHandler#getNavigationCases()获取Map个导航案例,您可以从Javadocs获取有关该方法的更多信息:

  

返回密钥所在的Map<String, Set<NavigationCase>>    值和值设置在哪里   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");

另见:

答案 1 :(得分:0)

试试这段代码:

    <session_save><![CDATA[db]]></session_save>