导航无法正常工作

时间:2011-06-30 22:46:24

标签: jsf navigation

我有简单的JSF应用程序。一切正常,但不是导航。它表现得像<navigation-rule> s不存在。在我的faces-config.xml中,我有一些导航规则,如:

<navigation-rule>
  <from-view-id>/view/party/create/create.xhtml</from-view-id>
  <navigation-case>
    <from-outcome>edit</from-outcome>
    <if>#{partyCreate.partyTypeSearch.code == partyTypeDao.organisation.code}</if>
    <to-view-id>/view/party/create/edit-organisation.xhtml</to-view-id>
    <redirect />
  </navigation-case>
</navigation-rule>

但是当我点击create.xhtml页面上的按钮时,我收到了消息:

Unable to find matching navigation case with from-view-id '/view/party/create/create.xhtml' for action '#{partyCreate.displayParty}' with outcome 'edit'

可能导致什么?我有第二个应用程序,其中设置是相同的,并且导航工作正常。我该怎么调试才能检查出错了什么?初始化等时没有错误消息。

2 个答案:

答案 0 :(得分:1)

您可以通过查看NavigationHandler.handleNavigation方法(如果未覆盖,在javax.faces.application.NavigationHandler中)进行调试。 在该方法中,您可以看到下一个操作是什么。 在我看来,我认为你应该在控制器中保留逻辑 - 即<if /> - 来管理该流程。

答案 1 :(得分:1)

宣言看起来不错。也许<if>条件只指向错误的属性名称或返回意外的属性值。要测试一个和另一个,只需删除<if>声明或运行调试器。如果徒劳无功,请尝试删除<from-view-id>(以便任何视图源有效)以将其排除在原因之外。