加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 04:53:36 所属栏目:百科 来源:网络整理
导读:我有三个值,我希望在前两个值的情况下渲染一个组件,为第三个值渲染另一个组件 下面,我有我的页面: page.xhtml ui:repeat value=#{bean.value} var="data"c:choose c:when test="#{data.thirdValue == 'content'}" h:outputText value="Wrong value"/ /c:whe
我有三个值,我希望在前两个值的情况下渲染一个组件,为第三个值渲染另一个组件

下面,我有我的页面:

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>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读