我正在使用 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>
这段代码迭代,我有两个元素要迭代,输出是这样的:
UserLogin : Y
UserLogin : X
必须是:
UserLogin : Y
UserLogin : X
Utilisateur equivalent X
标签<c:if test="${reponse.utilisateur.login eq 'X'}">
不正确?
最佳答案
JSTL 标签如 <c:if>
在 View 构建期间运行,而 JSF 组件如 <ui:repeat>
在 View 渲染期间运行。因此,根据您目前给出的代码,#{reponse}
在 JSTL 运行时不可用,因为<ui:repeat>
还没跑您需要一个带有 rendered
的普通 JSF 组件属性代替。
<h:panelGroup rendered="#{reponse.utilisateur.login eq 'X'}">
Utilisateur equivalent X
</h:panelGroup>
另见:
关于string - 测试 JSTL 字符串值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11208352/