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

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

`<c:out>`是一个 JSTL 核心标签，用于在浏览器（客户端）上显示服务器端变量和硬编码值。您可能想知道变量的值和数据可以使用[表达语言（EL）](https://beginnersbook.com/2013/11/jsp-expression-language-el/ "EL")和[`out`隐式对象](https://beginnersbook.com/2013/11/jsp-implicit-object-out-with-examples/)来显示，为什么我们需要`<c:out>` jstl 标签？区别在于`<c:out>`标签转义 HTML / XML 标签但其他标签没有，请参考示例来理解这一点。

### 标签`<c:out>`示例

在这个例子中，我们在浏览器上显示一个字符串，但是我们在值中使用了 html 标签，我们希望看到结果是什么以及它是如何使用 HTML 标签的。

```html
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title>c:out Tag Example</title>
</head>
<body>
<c:out value="${'<b>This is a <c:out> example </b>'}"/>
</body>
</html>
```

输出：

```html
`<b>这是<c:out>示例</b>
```

![c-out-example](../Images/582c61a6d5ce915b48ba7f3d32746181.jpg)

`<c:out>`标签的`escapeXml`属性

假设我像这样修改上面的代码 - 我刚刚在标签中添加了`escapeXML`属性并将其标签为`false`。 **默认情况下，`escapeXML`属性的值为`true`**。由于我们将其标签为`false`，因此它不会转义 HTML / XML 标签，并且标签将起作用。

```html
<c:out value="${'<b>This is a <c:out> example </b>'}" escapeXml="false"/>
```

**输出：**

![c-out-example2](../Images/85bdcb5708a989960c916f6204b048b6.jpg)

**`<c:out>`标签的`default`属性**

上面我们看到了`<c:out>`的`escapeXML`属性。标签。此标签还有另一个属性`default`，用于显示`<c:out>`的值为`null`时的后备或默认值。下面是我们尝试使用标签打印字符串`str`的值的示例，并且由于字符串`str`值为`null`，标签正在打印`default`属性中设置的值。

```html
<%! String str = null; %>
<c:out value="${str}" default="default value of c:out"/>
```

![c-out-example3](../Images/ffbab492317184dd3d44fdec53555463.jpg)