警告JSF1090:组件j_idt51未解析导航案例

时间:2013-12-11 12:58:12

标签: jsf jsf-2 navigation

我在我的应用程序中收到此警告

  

JSF1090:未解析组件j_idt51的导航案例

此警告的原因是什么?如何解决?奇怪的是,组件标识j_idt51不在呈现的页面中。如果我查看生成的页面的HTML,则没有标识为j_idt51的元素。

1 个答案:

答案 0 :(得分:12)

只要您在outcome<h:link>的{​​{1}}属性中使用(隐式)导航结果,表示有效,就会出现此警告查看ID。

E.g。

<h:button>

此外,<h:link ... outcome="viewIdWhichDoesNotExist" /> <h:button ... outcome="viewIdWhichDoesNotExist" /> 将呈现<h:link>元素而不是<span>元素。

解决方案很明显:使用有效的视图ID,或者至少确保ConfigurableNavigationHandler#getNavigationCase()可以解析所需的视图。

请注意,有些初学者出于未知原因使用<a>之类的完整网址作为http://google.com的结果值:

<h:link>

这种滥用也会产生这种警告。您应该使用<h:link value="Go to Google" outcome="http://google.com" /> 或仅使用<h:outputLink>

对于缺少与JSF组件具有相同ID的HTML元素,当您未明确指定JSF组件的<a>属性时,可能会发生这种情况。然后,JSF组件ID不一定会在生成的HTML输出中结束。为这些组件分配固定的ID应该有助于更好地确定原因。