View JSF2.0隐式导航,不同视图

View JSF2.0隐式导航,不同视图,view,navigation,jsf-2,View,Navigation,Jsf 2,我正在寻找一个关于JSF2.0隐式导航以及它如何与视图协同工作的好解释。更准确地说,我理解从一个action方法中我可以返回一个字符串,它是该操作的结果。如果有一个JSF视图的文件名与结果匹配,那么这就是隐式导航 现在。。。我的问题是,如果从文件夹中的视图调用操作,但我要导航到的下一个视图位于不同的文件夹中,该怎么办?即,从/manager/edit.xhtml调用操作。该操作应该返回什么字符串,以便导航可以安全地转到/user/list.xhtml或/index.xhtml或/manager/

我正在寻找一个关于JSF2.0隐式导航以及它如何与视图协同工作的好解释。更准确地说,我理解从一个action方法中我可以返回一个字符串,它是该操作的结果。如果有一个JSF视图的文件名与结果匹配,那么这就是隐式导航


现在。。。我的问题是,如果从文件夹中的视图调用操作,但我要导航到的下一个视图位于不同的文件夹中,该怎么办?即,从
/manager/edit.xhtml
调用操作。该操作应该返回什么字符串,以便导航可以安全地转到
/user/list.xhtml
/index.xhtml
/manager/index.xhtml

据我所知,JSF仅在当前上下文中查找匹配视图。您可能必须在faces-config.xml中定义一个导航规则,以特殊方式处理结果。以下是一个例子:

<navigation-rule>
        <from-view-id>/profiles/viewkeypages.xhtml</from-view-id>
        <navigation-case>
            <from-outcome>editkeypage</from-outcome>
            <to-view-id>/users/editkeypage.xhtml</to-view-id>
            <redirect />
        </navigation-case>      
</navigation-rule>

/profiles/viewkeypages.xhtml
编辑键页
/users/editkeypage.xhtml

-Praveen.

您可以使用隐式导航来访问其他文件夹中的视图

只需在视图中执行以下操作:

<h:link value="Move" outcome="#{request.contextPath}/users/editkeypage.xhtml?faces-redirect=true" />



你好,普拉文。对,这就是我目前正在做的,我只是想验证一下。我的意思是,我读过的参考文献和我遇到的博客都提到了隐式导航的好处,但它们没有说明它不能取代导航规则,特别是因为隐式导航只适用于当前上下文中的视图。即使在只有几个视图的小型web应用程序中,我们也应该将这些视图组织到目录中,从而创建上下文。我想确认导航到不同的上下文需要使用导航规则。在普通的GET链接中,
faces redirect=true
如何有用?这部分可能不需要,但您可以从一个文件夹中的视图转到另一个文件夹中的视图,这正是我的目的。我只是复制并粘贴了一个我有的例子,却忘了删除那个部分。
<h:link value="Move" outcome="/users/editkeypage.xhtml?faces-redirect=true" />