如何从 Java class 访问 faces 配置的导航案例
How to access the navigation-case of the faces config from a Java class
我有这种情况,我必须从托管 bean 访问整个面部配置。更具体地说,我需要访问在 faces-config 中指定的导航案例列表并循环浏览它们。
有什么办法可以得到吗?
我看到 NavigationCase 有一些很好的方法可以揭示一些有用的信息.. 现在的问题是,如何获得这些 NavigationCase
的列表
根据您在问题中指定的标签,我可以说您使用的是 JSF 2,因此您可以使用 ConfigurableNavigationHandler
来获取您要查找的内容。
使用 ConfigurableNavigationHandler#getNavigationCases()
获取 Map
个导航案例,您可以从 Javadocs:
中获取有关该方法的更多信息
Return a Map<String, Set<NavigationCase>>
where the keys are
values and the values are Set where
each element in the Set is a NavigationCase that applies to that
.
这是调用该方法的示例:
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");
另请参阅:
- JSF 2 and Post/Redirect/Get?
- Java Code Examples for javax.faces.application.ConfigurableNavigationHandle
试试这个代码:
FacesContext ctxt = FacesContext.getCurrentInstance();
ConfigurableNavigationHandler configNavHandler = (ConfigurableNavigationHandler)ctxt.getApplication().getNavigationHandler();
NavigationCase navCase = configNavHandler.getNavigationCase(ctxt,null,"Page");
String toViewId = navCase.getToViewId(ctxt);
我有这种情况,我必须从托管 bean 访问整个面部配置。更具体地说,我需要访问在 faces-config 中指定的导航案例列表并循环浏览它们。 有什么办法可以得到吗?
我看到 NavigationCase 有一些很好的方法可以揭示一些有用的信息.. 现在的问题是,如何获得这些 NavigationCase
的列表根据您在问题中指定的标签,我可以说您使用的是 JSF 2,因此您可以使用 ConfigurableNavigationHandler
来获取您要查找的内容。
使用 ConfigurableNavigationHandler#getNavigationCases()
获取 Map
个导航案例,您可以从 Javadocs:
Return a
Map<String, Set<NavigationCase>>
where the keys are values and the values are Set where each element in the Set is a NavigationCase that applies to that .
这是调用该方法的示例:
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");
另请参阅:
- JSF 2 and Post/Redirect/Get?
- Java Code Examples for javax.faces.application.ConfigurableNavigationHandle
试试这个代码:
FacesContext ctxt = FacesContext.getCurrentInstance();
ConfigurableNavigationHandler configNavHandler = (ConfigurableNavigationHandler)ctxt.getApplication().getNavigationHandler();
NavigationCase navCase = configNavHandler.getNavigationCase(ctxt,null,"Page");
String toViewId = navCase.getToViewId(ctxt);