【问题标题】:How to unescape HTML in Struts2如何在 Struts2 中取消转义 HTML
【发布时间】:2013-04-09 15:06:25
【问题描述】:

我在数据库中保存了一些基本的 HTML。此 HTML 通过 Action 类中的 ValueStack 在 JSP 文件中重新显示为 <s:property value="htmlcodeString"/>

但是,HTML 代码不会被解释,而是转义并按原样显示(例如,显示的是 BOLD 而不是 BOLD)。

我正在使用 Struts2。我在互联网上找到了很多使用<c:out value="${text}" escapeXml="false" /> 的建议。但我不知道它是什么。如何在 Struts2 中使用它?

【问题讨论】:

  • 您是否查看过<s:property> 标签文档,看看是否没有类似的属性可以关闭 HTML/XML 转义? struts.apache.org/development/2.x/docs/property.html 顺便说一句,您是否完全意识到,当这涉及未经处理的用户控制输入时,您会以这种方式打开一个巨大的 XSS 攻击漏洞?

标签: jsp struts2 jstl html-escape


【解决方案1】:

The <s:property> tag 有一个escapeHtml 属性,默认为true

(希望原因很明显。)

<c:out> 是 JSTL 的一部分,您可以像在任何其他 Web 应用程序中一样在 S2 中使用它,但需要注意的是,由于 S2 请求包装器,您可以使用 JSP EL 访问值堆栈。

【讨论】:

    【解决方案2】:

    我通过 Google 遇到了这个问题,发现添加 escapeHtml="false" 属性会导致 JSP 停止显示。取而代之的只是escape="false

    【讨论】:

    • escape 属性在几年前已被弃用。
    猜你喜欢
    • 2021-07-30
    • 2015-05-16
    • 2010-11-08
    • 1970-01-01
    • 1970-01-01
    • 2019-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多