我在我的应用程序中收到此警告
JSF1090:未解析组件j_idt51的导航案例
此警告的原因是什么?如何解决?奇怪的是,组件标识j_idt51
不在呈现的页面中。如果我查看生成的页面的HTML,则没有标识为j_idt51
的元素。
答案 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应该有助于更好地确定原因。