使用JSF进行页面导航

时间:2011-02-09 08:22:09

标签: jsf navigation faces-config

这可能是一个简单的问题,但我不知道答案。

我有一个项目,myProject。在webContent中我有文件home.xhtml,leave.html和我有2个其他文件夹:猫和狗。在猫直接我有一个页面cat.xhtml,并在目录狗我有一个页面dogs.xhtml。

我想从每个页面(家,猫,狗)到页面leave.html 在每个文件中都有一个commandLink

<h:form>
    <h:outputLink value="leave.html" action="#{myBean.leave}">
        <f:verbatim>Leave</f:verbatim>
    </h:outputLink>
</h:form>
方法myBean中的

leave返回字符串“leave”

<navigation-rule>
    <from-view-id>*</from-view-id>
    <navigation-case>
        <from-outcome>leave</from-outcome>
        <to-view-id>/leave.html</to-view-id>
    </navigation-case>
</navigation-rule>

但这不起作用。 我也试过使用<to-view-id>../leave.html</to-view-id> 或者添加一个新的文件夹,并在那里放置leave.html页面。 我使用<to-view-id>/leave/leave.html</to-view-id><to-view-id>/../leave.html</to-view-id>

但所有结果都与HTTP Status 404 /myProject/cats/leave.htlm相同 类型状态报告

  

消息/myProject/cats/leave.htlm

     

description请求的资源(/myProject/cats/leave.htlm)是   不可用。

1 个答案:

答案 0 :(得分:3)

您的导航无法正常工作,因为页面始终为“leave.html”。 h:outpuLink使用value属性进行导航。 我建议你使用h:commandLink并使用value属性显示链接(Leave)和from-outcome字符串的action属性。

<h:commandLink value="Leave" action="#{myBean.leave}">