【发布时间】:2010-09-22 09:44:26
【问题描述】:
写一个JSP页面,<c:out>到底是做什么的?我注意到以下两者具有相同的结果:
<p>The person's name is <c:out value="${person.name}" /></p>
<p>The person's name is ${person.name}</p>
【问题讨论】:
写一个JSP页面,<c:out>到底是做什么的?我注意到以下两者具有相同的结果:
<p>The person's name is <c:out value="${person.name}" /></p>
<p>The person's name is ${person.name}</p>
【问题讨论】:
c:out 转义 HTML 字符,以便您避免跨站点脚本。
如果person.name = <script>alert("Yo")</script>
脚本将在第二种情况下执行,但在使用c:out时不会执行
【讨论】:
正如 Will Wagner 所说,在旧版本的 jsp 中,您应该始终使用 c:out 来输出动态文本。
此外,使用以下语法:
<c:out value="${person.name}">No name</c:out>
name 为空时可以显示文本“No name”。
【讨论】:
c:out 还具有一个属性,用于在 person.name 的值恰好为 null 时分配默认值。
【讨论】:
您可以通过使用属性 escapeXml 值等于 true 来显式启用 Xml 实体的转义。仅供参考,默认情况下为“true”。
【讨论】:
旧版本的 JSP 不支持第二种语法。
【讨论】: