写一个 JSP 页面,<c:out>到底是做什么的? 我注意到以下两者的结果是一样的:
<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转义了 HTML 字符,这样你就可以避免跨网站脚本。
c:out
如果 person.name = <script>alert("Yo")</script>
person.name = <script>alert("Yo")</script>
脚本将在第二种情况下执行,但是不会在使用 c:out时执行
c:out还有一个属性,用于在 person.name的值碰巧为空时分配默认值。
person.name
资料来源: 输出(TLDDoc 生成的文档)
正如 Will Wagner 所说,在旧版本的 jsp 中,应该始终使用 c:out来输出动态文本。
此外,使用这种语法:
<c:out value="${person.name}">No name</c:out>
当 name 为 null 时,可以显示文本“ No name”。
可以通过使用等于 true 的属性 escape eXml 值显式启用 Xml 实体的转义。顺便说一句,默认是“真的”。