# JSTL`<c:if>`核心标签

> 原文： [https://beginnersbook.com/2013/11/jstl-cif-core-tag/](https://beginnersbook.com/2013/11/jstl-cif-core-tag/)

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

**语法：**

这是`<c:if>`的基本语法核心标签。包含在`<c:if>`范围内的语句集如果为`"true"`，则执行标签。为了使用此标签，我们通常使用[表达语言](https://beginnersbook.com/2013/11/jsp-expression-language-el/)来评估关系表达式。我们使用 EL，因为它在评估条件后返回布尔值（`true`/`false`），我们需要`test`属性的布尔值。

```html
<c:if test="${condition}">
...
..
</c:if>
```

## `<c:if>`的示例标签

在该示例中，我们使用[`<c:set>`标签](https://beginnersbook.com/2013/11/jstl-cset-core-tag/)定义了`age`变量。然后我们通过使用`<c:if>`来检查投票的资格。

```html
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title>JSTL c:if Tag Example</title>
</head>
<body>
<c:set var="age" value="26"/>
<c:if test="${age >= 18}">
 <c:out value="You are eligible for voting!"/>
</c:if>
<c:if test="${age < 18}">
 <c:out value="You are not eligible for voting!"/>
</c:if>
</body>
</html>
```

输出：

![c-if-example](../Images/44df108a19f4332e4fe7a9bd74a625af.jpg)

## `<c:if>`属性

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

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

## `var`和`scope`属性的示例

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

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

![c-if-example2](../Images/bfc27ebc7c7068af8d5cba0a71ba7fd8.jpg)