jsp - JSTL 转义特殊字符

标签 jsp escaping jstl special-characters

我遇到了特殊字符的奇怪问题。 在 JSP 中,我使用字段名称作为 id,名称可以是类似的任何内容

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

除了名称之外,我没有任何其他选项可以使用 ID,这是我从后端获得的唯一信息。

那么,是否有任何逻辑可以使用 JSTL 删除所有特殊字符。 在目前的场景中,在 JS 中我将使用 ID 进行一些操作。这会导致每种浏览器出现许多问题。

请提出建议,提前致谢...

最佳答案

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。

关于jsp - JSTL 转义特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6134411/

相关文章:

jsp - 比较 JSTL <c :if test ="${values.type}==' object'"> 中的值的正确语法

java - JSP引擎处理jsp文件时如何获取servlet代码

java - 如何使用 JSTL 在 .jsp 页面中调用 java 方法

ios - 有没有办法在 swift 中用反斜杠替换双引号

javascript - jSTL : foreach loop setting values to a hidden variable returns zero always

HTML 下拉列表设置从 JSP/servlet 中的数据库中选择的默认值

java - 尝试获取 CSS 文件时出现 "Request method GET not supported"错误

java - 使用 Struts2 迭代器迭代 JSON 字符串 - 没有打印任何内容

c# - 如何阻止 XElement.Save 转义字符?

sql - 用R中的双引号替换转义的双引号