0

私は JSF と JSTL を使用していますが、上記のコードは機能しません!

<ui:repeat var="reponse" value="#{gPost.reponses}">                                             UserLogin : #{reponse.utilisateur.login}
    <c:if test="${reponse.utilisateur.login eq 'X'}">
        Utilisateur equivalent X
    </c:if>
</ui:repeat>

このコードは反復します。反復する要素が 2 つあります。出力は次のとおりです。

UserLogin : Y
UserLogin : X

それは違いない :

UserLogin : Y
UserLogin : X
Utilisateur equivalent X

タグ<c:if test="${reponse.utilisateur.login eq 'X'}">がおかしい?

4

1 に答える 1

1

JSTL タグのようなもの<c:if>はビューのビルド時に実行されますが、JSF コンポーネントのようなもの<ui:repeat>はビューのレンダリング時に実行されます。したがって、これまでのコードで#{reponse}は、JSTL が実行されていないため、JSTL の実行中は使用できませ<ui:repeat>ん。rendered代わりに、属性を持つ通常の JSF コンポーネントが必要です。

<h:panelGroup rendered="#{reponse.utilisateur.login eq 'X'}">
    Utilisateur equivalent X
</h:panelGroup> 

以下も参照してください。

于 2012-06-26T13:32:38.423 に答える