I tried the last version of JavaServer Faces 2.2 (Mojarra 2.2.4) and noticed changing my query string in this unwanted way:
page.jsf?jftfdi=&jffi=
instead of
page.jsf
I've found that it is the new JSF 2.2 feature. But these query params(jftfdi, jffi) spoil me SEO-friendly urls. How can I disable it?
I had the same error before. The origin of this bug is the version of jsf. Just try to upgrade version to 2.2.5 like this :
Hope it's helpfull
This is a bug in Mojarra. They should not have been appended when there's no means of any flow navigation configuration (by the new
@FlowScoped
annotation and<j:flow-xxx>
tags).Basically, the
OutcomeTargetRenderer
class who's responsible for HTML output generation of the<h:link>
and<h:button>
is incorrectly checking ifNavigationCase#getToFlowDocumentId()
returns non-null
before appending the flow navigation parameters. However, based on the javadoc the base implementation never returnsnull
, but an empty string. Therefore, the renderer always thinks that it's in middle of a flow navigation and always appends the associatedjftfdi
andjffi
request parameters. The fix is to let it check as well if it returns a non-empty string.I reported it as issue 3054 and they confirmed that this is a bug and are currently working on it. The fix will likely be available in Mojarra 2.2.5.
Update: as of now, less than a day later, it's fixed for 2.2.5.
By the way, the
jftfdi
stands for "javax.faces
To Flow Document ID" which is specified as follows in the javadoc:and the
jffi
stands for "javax.faces
Flow ID" which is specified as follows in the javadoc: