I\'m using an
as follows.
Don't you like this kind of a solution?
<f:param name="#{cid == null ? '' : 'cid'}" value="#{cid}"/>
<f:param name="#{sid == null ? '' : 'sid'}" value="#{sid}"/>
The <f:param>
has a disable (not disabled!) attribute for the purpose.
<f:param name="cid" value="#{cid}" disable="#{empty cid}" />
<f:param name="sid" value="#{sid}" disable="#{empty sid}" />
Note that this has a bug in Mojarra versions older than 2.1.15, because they typo'ed the actual UIParameter
property to be disble
instead of disable
. See also issue 2312.
As to the <c:if>
approach, that would only work if the #{cid}
and #{sid}
is available during view build time. In other words, it would fail if they are only available during view render time, e.g. when they depend on var
of a repeater component. See also JSTL in JSF2 Facelets... makes sense?