Il me semble que la jstl n'est pas interprétée linéairement avec les composants JSF standard.
Je crois me rappeler que c'est d'abord la JSTL qui est évaluée, dans l'ordre, sur toute la page, puis que c'est JSF qui vient ensuite; celà peut provoquer des solutions étranges, et c'est peut-être ton problème.
=> attention, sur ce point là je peux me tromper! J'ai jeté un oeil rapide sur google, et j'ai lu plusieurs sons de cloches. Donc peut-être qu'un expert du domaine saura confirmer ou non!
De façon plus générale, j'ai eu plusieurs problèmes de ton ordre en utilisant les c:if (et les c: en général), et j'ai finalement pris le parti, autant que possible, d'utiliser l'attribut "rendered" des composants JSF . Cet attribut peut prendre la même valeur booléenne que celui de ton test du <c:if>.
Tu peux aussi essayer d'utiliser les facelets avec le composant suivant ;
<ui:fragment rendered="#{tontestbooleen}" > ... tes composants à rendre </ui:fragment>
Voilà... j'espère que ces pistes sauront t'aider!
Partager