【问题标题】:c:if tag is not working correctly in case of truec:if 标签在 true 的情况下不能正常工作
【发布时间】:2015-01-30 15:37:27
【问题描述】:

我正在尝试使用c:if 标签,但如果为真,它不会显示任何内容。当if 条件为真时,我应该怎么做才能显示任何文本。 这是我的 xhtml 代码

<html>
  <body>

    <c:if test="#{fileMB.per.getFirstName()}='gul'}" >
        <h:outputLabel for="user" value="#{logMB.userExists.getFirstName()}"/>
    </c:if>

  </body>
</html>

per 是登录人的作用域变量...

【问题讨论】:

    标签: jakarta-ee jstl


    【解决方案1】:

    您的代码有问题:

    1. 您使用的是赋值运算符而不是比较运算符。更不用说您真的不应该将比较运算符与字符串一起使用。所以你的比较应该改为

      #{fileMB.per.getFirstName().equals('gul')}} 
      
    2. 您不应该将 JSTL 标记与 facelets 一起使用,除非您完全确定自己在做什么。阅读this post 并将您的代码更改为

      <h:outputLabel for="user" rendered="#{fileMB.per.getFirstName().equals('gul')}}" value="#{logMB.userExists.getFirstName()}"/>
      

    当然,这种方法的整体有效性仍然基于选择正确的 bean 范围(阅读:@ViewScoped

    阅读

    【讨论】:

      【解决方案2】:

      您需要在 JSTL 标记中包含您的条件。

      <c:if test="${salary > 2000}"> <p>My salary is: <c:out value="${salary}"/><p> </c:if>

      http://www.tutorialspoint.com/jsp/jstl_core_if_tag.htm中查看更多信息

      另外,您的条件中有没有打开标签的关闭 } 标签,# 而不是 $,您应该将字符串与双等号进行比较 ==

      JSTL if tag for equal strings中查看更多信息

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-11-06
        • 2021-05-22
        • 2013-04-14
        • 1970-01-01
        • 2023-02-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多