Conditional rendering of f:param in JSF

前端 未结 2 455
终归单人心
终归单人心 2021-01-02 08:05

I\'m using an as follows.






        
相关标签:
2条回答
  • 2021-01-02 08:52

    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}"/>
    
    0 讨论(0)
  • 2021-01-02 08:54

    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?

    See also:

    • f:param tag attribute 'disable' is not work
    0 讨论(0)
提交回复
热议问题