In my JSF application I've got a link to a page, which is build with a dynamic query string:
<h:link outcome="list?#{controller.queryString}" value="Example" />
I can't use <f:param>
, because the count of included parameters changes for every request.
The problem is that the query string is URL encoded, because some parameter values can contain a =
. The result is that the query string is encoded twice in the result HTML.
An outcome of list?a=b%3Dc
becomes:
<a href=".../list.xhtml?a=b%253Dc">Example</a>
Looking at the JSF spec (Default NavigationHandler Algorithm) I can't find anything about encoded in the query string. But I think that com.sun.faces.application.NavigationHandlerImpl.findImplicitMatch
is a rather hacky implementation.
My question: Did I use <h:link>
in a wrong way (works as designed) or is this somehow a bug?
My current solution is to use a <h:outputLink>
instead - which prevents the usage of any navigation rules.