JSF 2.0隐式导航,视图不同

时间:2011-04-04 23:39:01

标签: view navigation jsf-2

我正在寻找JSF 2.0隐式导航的良好解释以及它如何与视图一起使用。更确切地说,我理解从一个动作方法我可以返回一个字符串,它是动作的结果。如果有一个JSF视图,其文件名与结果匹配,则这是隐式导航。

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

2 个答案:

答案 0 :(得分:1)

据我所知,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>

-Praveen。

答案 1 :(得分:0)

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

在视图中执行以下操作:

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

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