我有简单的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'
可能导致什么?我有第二个应用程序,其中设置是相同的,并且导航工作正常。我该怎么调试才能检查出错了什么?初始化等时没有错误消息。
答案 0 :(得分:1)
您可以通过查看NavigationHandler.handleNavigation
方法(如果未覆盖,在javax.faces.application.NavigationHandler
中)进行调试。
在该方法中,您可以看到下一个操作是什么。
在我看来,我认为你应该在控制器中保留逻辑 - 即<if />
- 来管理该流程。
答案 1 :(得分:1)
宣言看起来不错。也许<if>
条件只指向错误的属性名称或返回意外的属性值。要测试一个和另一个,只需删除<if>
声明或运行调试器。如果徒劳无功,请尝试删除<from-view-id>
(以便任何视图源有效)以将其排除在原因之外。