0

现在我在 faces-config.xml 文件中给出我的导航规则。如果我想停止在 faces-config.xml 中输入条目。

如果我不想在 faces-config.xml 中指定导航规则,如何指定?

“面孔-config.xml”

<?xml version="1.0"?>
<faces-config version="1.2" xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd">
    <navigation-rule>
        <description>Navigation from the hello page.</description>
        <from-view-id>/login.xhtml</from-view-id>
        <navigation-case>
            <from-outcome>success</from-outcome>
            <to-view-id>/wsListing.xhtml</to-view-id>
            <redirect />
        </navigation-case>
    </navigation-rule>
    <navigation-rule>
        <description>Navigation from the hello page.</description>
        <from-view-id>/wsListing.xhtml</from-view-id>
        <navigation-case>
            <from-outcome>ebzService</from-outcome>
            <to-view-id>/ebzinput.xhtml</to-view-id>
            <redirect />
        </navigation-case>
        <navigation-case>
            <from-outcome>filterEbz</from-outcome>
            <to-view-id>/filterebzinput.xhtml</to-view-id>
            <redirect />
        </navigation-case>
    </navigation-rule>


    <navigation-rule>
        <description>Navigation from the hello page.</description>
        <from-view-id>/ebzinput.xhtml</from-view-id>
        <navigation-case>
            <from-outcome>success</from-outcome>
            <to-view-id>/ebzoutput.xhtml</to-view-id>
            <redirect />
        </navigation-case>
        </navigation-rule>

</faces-config>
4

2 回答 2

3

仅从 JSF 2.0 开始支持隐式导航。根据 XML 文件根声明和您的问题历史记录,您使用的是 JSF 1.2,所以这就是故事的结尾。

但是,根据您当前的导航案例,您似乎每次都在重定向。为此,您也可以ExternalContext#redirect()改用。

public void login() throws IOException {
    // ...

    FacesContext.getCurrentInstance().getExternalContext().redirect("wsListing.xhtml");
}

或者,如果您实际上根本不需要执行业务操作,只需使用普通链接即可。

<h:outputLink value="ebzinput.xhtml">go to ebzinput</h:outputLink>

另一个优点是它变得可搜索机器人索引(因此更好的 SEO)。

于 2012-05-11T11:22:40.693 回答
0

例如,操作方法可能会返回视图 ID,而不是“成功”

public String login() { return "wsListing"; }

通过这种方式,您可以将导航规则转移到托管 bean。如果你想强制重定向使用

public String login() { return "wsListing?faces-redirect=true"; }
于 2012-05-11T08:07:42.003 回答