jsf-2 – c:选择不在JSF中工作

前端之家收集整理的这篇文章主要介绍了jsf-2 – c:选择不在JSF中工作前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有三个值,我希望在前两个值的情况下渲染一个组件,为第三个值渲染另一个组件

下面,我有我的页面

page.xhtml

<ui:repeat value=#{bean.value} var="data">
<c:choose>
 <c:when  test="#{data.thirdValue == 'content'}">
   <h:outputText value="Wrong value"/>
 </c:when>
 <c:otherwise>
  Correct!
 </c:otherwise>
</c:choose>
</ui:repeat>

这就是我的页面定义方式.我还添加了以下命名空间:xmlns:c =“http://java.sun.com/jsp/jstl/core.

我测试了测试中的值是否为< c:when>返回“true”或“false”,确实如此.

我的问题是< c:when>永远不会被评估. < c:否则>值始终呈现.我错过了什么吗?是因为条件渲染在< ui:repeat>内了什么时候不评估?

任何帮助将非常感谢.提前致谢

解决方法

你需要删除c:choose,因为正如@Jens在评论中所述,它们是在不同的阶段处理的.您可以将JSTL与JSF结合使用,但必须遵守它们的解决顺序.阅读BalusC的精美答案,他摇滚.

根据您的需要,您可以使用rendered attribute来有条件地输出文本:

<ui:repeat value="#{bean.value}" var="data">
    <h:outputText rendered="#{data.thirdValue == 'content'}" value="Wrong value"/>
    <h:outputText rendered="#{data.thirdValue != 'content'}" value="Correct!"/>
</ui:repeat>
原文链接:https://www.f2er.com/c/119996.html

猜你在找的C&C++相关文章