原文: https://beginnersbook.com/2013/11/jstl-cif-core-tag/

<c:if>是一个 JSTL 核心标签,用于测试条件。它更像或类似于 java 中的if语句,它评估条件并在结果为真时执行代码块。

语法:

这是<c:if>的基本语法核心标签。包含在<c:if>范围内的语句集如果为"true",则执行标签。为了使用此标签,我们通常使用表达语言来评估关系表达式。我们使用 EL,因为它在评估条件后返回布尔值(true/false),我们需要test属性的布尔值。

  1. <c:if test="${condition}">
  2. ...
  3. ..
  4. </c:if>

<c:if>的示例标签

在该示例中,我们使用<c:set>标签定义了age变量。然后我们通过使用<c:if>来检查投票的资格。

  1. <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
  2. <html>
  3. <head>
  4. <title>JSTL c:if Tag Example</title>
  5. </head>
  6. <body>
  7. <c:set var="age" value="26"/>
  8. <c:if test="${age >= 18}">
  9. <c:out value="You are eligible for voting!"/>
  10. </c:if>
  11. <c:if test="${age < 18}">
  12. <c:out value="You are not eligible for voting!"/>
  13. </c:if>
  14. </body>
  15. </html>

输出:

JSTL`<c:if>`核心标签 - 图1

<c:if>属性

上面我们已经看到<c:if>的基本用法我们只使用test属性。然而,该标签还有另外两个可选属性,即varscope。使用这些属性,您只需将测试结果存储在指定范围内的变量中。

  • var:将存储测试结果的变量名称。
  • scope:定义存储值的范围。对于例如如果是会话,则可以访问存储的var值,直到会话处于活动状态。

varscope属性的示例

将测试结果存储在请求范围中的变量res中。为了打印我们给requestScope.res的值,因为变量存储在请求中,但是你甚至可以单独给出变量名(res),它可以正常工作。

  1. <c:if test="${17 >= 18}" var="res" scope="request">
  2. </c:if>
  3. <c:out value="${requestScope.res}"/>

JSTL`<c:if>`核心标签 - 图2