0

我在 faces-config.xml 中有一个带有导航规则的 JSF 按钮:

<h:commandButton id="newzone" styleClass="lbimage" value="New Zone" action="#{bean.navigateToNewZone()}">
    <f:ajax render="@form"></f:ajax>
</h:commandButton>

// Navigate to New Zone page
public int navigateToNewZone(){
    return 11472;
}

<navigation-rule>
    <description>Navigation rule to New Zone page</description>
    <from-view-id>/ZonesList.xhtml</from-view-id>
    <navigation-case>
        <from-action>#{ZonesController.navigateToNewZone()}</from-action>
        <from-outcome>11472</from-outcome>
        <to-view-id>/NewZone.xhtml</to-view-id>
    </navigation-case>
</navigation-rule>

我的问题是如何简化导航?我不想将导航规则添加到 faces-config.xml 中。有没有办法从 JSF 按钮直接打开新页面?

4

2 回答 2

4

有没有办法从 JSF 按钮直接打开新页面?

只需使用<h:button>而不是<h:commandButton>. 您根本不需要 POST 请求。

<h:button value="New Zone" outcome="/NewZone.xhtml" />

请注意,新的 JSF 2.0“隐式导航”功能将隐式使用“from-outcome”作为“to-view-id”,因此您确实也可以直接使用“to-view-id”<h:commandButton action>或返回值作为由另一个答案暗示。

于 2012-09-13T14:08:59.327 回答
2

您也可以action="/NewZone.xhtml"直接使用,无需在faces-config.xml.

于 2012-09-13T13:19:20.750 回答