JSP:JSTL <c:out>标记</c:out>

时间:2008-11-14 19:00:29

标签: java jsp jstl tags

编写JSP页面,<c:out>究竟做了什么?我注意到以下两者都有相同的结果:

<p>The person's name is <c:out value="${person.name}" /></p>
<p>The person's name is ${person.name}</p>

5 个答案:

答案 0 :(得分:148)

c:out转义HTML字符,以便您可以避免跨站点脚本。

如果person.name = <script>alert("Yo")</script>

脚本将在第二种情况下执行,但在使用c:out

时则不会执行

答案 1 :(得分:122)

正如威尔·瓦格纳所说,在旧版本的jsp中,你应该总是使用c:out来输出动态文本。

此外,使用以下语法:

<c:out value="${person.name}">No name</c:out>

当name为null时,您可以显示文本“No name”。

答案 2 :(得分:5)

如果c:out的值恰好为空,

person.name还有一个用于指定默认值的属性。

来源:out (TLDDoc Generated Documentation)

答案 3 :(得分:5)

您可以使用属性escapeXml值等于true来显式启用Xml实体的转义。仅供参考,默认为“true”。

答案 4 :(得分:4)

旧版本的JSP不支持第二种语法。