如何在 JSP 表达式语言中进行 HTML 编码?
Posted
技术标签:
【中文标题】如何在 JSP 表达式语言中进行 HTML 编码?【英文标题】:How to HTML-encode in the JSP expression language? 【发布时间】:2011-05-30 09:59:28 【问题描述】:考虑以下 JSP:
<param name="FlashVars" value="$flashVars" />
$flashVars
的值包含 & 符号,需要在输出前进行编码。相反,JSP 期望 $flashVars
的值是一段 html,并逐字输出与符号,从而导致 HTML 错误。
我发现这样写可以得到要编码的值:
<param name="FlashVars" value="<c:out value="$flashVars"/>" />
但这看起来真的很难看,并且让我的 IDE 无法启动。有没有更好的方法来获得相同的结果?
【问题讨论】:
如果 IDE 是上述问题的唯一问题,那就换个 IDE - Intellij IDEA 很棒。 我的主要问题是它看起来很难看。 :-) 我不想将标签嵌套在另一个标签的属性中。 我不怪 Eclipse;这是一种非常复杂的非组合模板语言,如果不为其编写完整的编译器(恕我直言,这不是 Eclipse 的工作),就很难进行正确的突出显示/错误报告。 【参考方案1】:使用fn:escapeXml()
。
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
...
<param name="FlashVars" value="$fn:escapeXml(flashVars)" />
【讨论】:
以上是关于如何在 JSP 表达式语言中进行 HTML 编码?的主要内容,如果未能解决你的问题,请参考以下文章