# JSTL＆lt; c：out＆gt;核心标签

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

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

### 标签＆lt; c：out＆gt;例

在这个例子中，我们在浏览器上显示一个字符串，但是我们在值中使用了 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>
```

输出：
＆lt; b＆gt;这是＆lt; c：out＆gt;示例＆lt; / b＆gt;

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

＆lt; c：out＆gt;的 **escapeXml 属性标签**

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

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

**输出：**

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

**属性“默认”＆lt; c：out＆gt;标签**

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

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

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