Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

WARNING JSF1090: Navigation case not resolved for component j_idt51

I'm getting this warning in my application

JSF1090: Navigation case not resolved for component j_idt51

What is the reason for this warning and how can I resolve it? The strange thing is that the component id j_idt51 is not in the rendered page. If I look to the HTML of the generated page there is no element with id j_idt51.

like image 392
simonC Avatar asked Dec 11 '13 12:12

simonC


1 Answers

This warning will occur whenever you use an (implicit) navigation outcome in the outcome attribute of <h:link> or <h:button>, which does not represent a valid view ID.

E.g.

<h:link ... outcome="viewIdWhichDoesNotExist" />
<h:button ... outcome="viewIdWhichDoesNotExist" />

Additionally, the <h:link> will render a <span> element instead of an <a> element.

The solution is obvious: use a valid view ID, or make at least sure that the desired view is resolveable by ConfigurableNavigationHandler#getNavigationCase().

Note that some starters use for an unknown reason even a full URL like http://google.com as outcome value of <h:link>:

<h:link value="Go to Google" outcome="http://google.com" />

This abuse would then also yield exactly this warning. You should be using <h:outputLink> or just <a> instead.

As to the absence of a HTML element with the same ID as the JSF component, this may happen when you didn't explicitly specify the JSF component's id attribute. The JSF component ID does then not necessarily end up in the generated HTML output. Assigning those components a fixed ID should help better in nailing down the cause.

like image 184
BalusC Avatar answered Nov 27 '22 13:11

BalusC