This is a mistake in Mojarra. They should not have been added when there is no means for any flow navigation configuration ( using the new @FlowScoped tags and <j:flow-xxx> tags ).
Basically, the OutcomeTargetRenderer class, which is responsible for generating HTML <h:link> and <h:button> output, incorrectly checks if NavigationCase#getToFlowDocumentId() returns non- null before adding stream navigation parameters. However, based on javadoc, the underlying implementation never returns null , but an empty string. Therefore, the rendering always considers that it is in the middle of the flow navigation and always adds the related query parameters jftfdi and jffi . Fix this so that it also checks if it returns a non-empty string.
I reported this as issue 3054 and they confirmed that this is a mistake and are currently working on it. The fix is ββlikely to be available in Mojarra 2.2.5.
Update : at the moment, in less than a day, it has been fixed for version 2.2.5.
By the way, jftfdi means " javax.faces To Flow Document ID", which is specified in javadoc :
Components that are rendered by the renderers of the javax.faces.OutcomeTarget family of components should use this constant as the parameter name for the parameter representing the identifier of the defining document of the stream that this component will enter.
and jffi means " javax.faces id" which is listed below in javadoc :
Components that are rendered by the renderers of the javax.faces.OutcomeTarget family of components should use this constant as the parameter name for the parameter representing the identifier of the stream of the stream that this component will enter.
source share