2

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

我有一个项目,myProject。在 webContent 中,我有 home.xhtml、leave.html 文件和另外 2 个文件夹:猫和狗。在cats 目录中我有一个页面cat.xhtml,在目录dogs 中我有一个页面dogs.xhtml。

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

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

myBeanin 方法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 并放入 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 type Status report

消息 /myProject/cats/leave.htlm

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

4

1 回答 1

3

您的导航不起作用,因为页面总是要“leave.html”。h:outpuLink 使用 value 属性进行导航。我建议您使用 h:commandLink 并将 value 属性用于显示链接(离开),将 action 属性用于 from-outcome 字符串。

<h:commandLink value="Leave" action="#{myBean.leave}"> 
于 2011-02-09T08:53:36.560 回答