一尘不染

JSTL转义特殊字符

jsp

我有特殊字符这个奇怪的问题。在JSP中,我使用字段名称作为id,名称可以是

id="<1 and &>2" (OR)
id="aaa & bbb"

除了名称,我没有其他选择可以使用ID,这是我从后端获得的唯一东西。

因此,是否有任何逻辑可以使用JSTL删除所有特殊字符。在当前情况下,在JS中,我将对ID进行一些操作。这会导致每种浏览器出现许多问题。

请提出建议,在此先谢谢…


阅读 822

收藏
2020-06-08

共1个答案

一尘不染

JSTL提供了两种转义HTML特殊字符的方法:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
[…]
<c:out value="${myName}"/>

<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
[…]
${fn:escapeXml(myName)}

两者都将特殊字符转换为它们各自的HTML实体:(<变为&lt;&变为&amp;…)。

请注意,ID必须以HTML编码,而不是JavaScript。

2020-06-08