【问题标题】:How can I insert a XML file in a XHTML page <textarea> using JSP?如何使用 JSP 在 XHTML 页面 <textarea> 中插入 XML 文件?
【发布时间】:2009-12-03 14:13:18
【问题描述】:

如何将 XML 文件作为内容包含在 XHTML 文档的 textarea 元素中?特殊字符不转义会导致校验错误。

在 JSP 中是否有一种简单的方法可以在使用 include 指令插入特殊字符之前对其进行转义,例如使用 JSTL?

示例代码:

    <div>
        <textarea name="content" rows="20" cols="80"><%@ include file="example.xml" %></textarea>
    </div>

这在浏览器中看起来不错,但 XHTML 验证将失败,因为嵌入的文件启动了另一个 XML 声明。

【问题讨论】:

  • 如果浏览器从错误中恢复并且 XML 文件不包含字符串 &lt;/textarea&gt;,它只会在浏览器中“看起来很好”。

标签: xml jsp xhtml jstl


【解决方案1】:

执行此操作的“官方”JSTL 方式如下:

<c:import url="example.xml" var="xmlContent"/>

<textarea><c:out value="${xmlContent}" escapeXml="true"/></textarea>

escapeXml 属性无论如何都默认为 true,但出于文档的原因,在此处指定它可能是明智的。

【讨论】:

  • 你可能的意思是它默认为true...?
  • s/默认为假/默认为真。尽管如此 +1。
  • 糟糕,抱歉,我认为“true”并输入了“false”。
【解决方案2】:

您可能希望将 &lt;%@ include %&gt; 嵌入到 &lt;![CDATA[...]]&gt; 中,以便将其视为纯文本而不是 XML 部分。您可以阅读 this 以更深入地了解 CDATA 的用途。

【讨论】:

  • 只有当文档以 XML 内容类型(例如 application/xhtml+xml)提供时才有效,大多数 XHTML 使用将其作为 text/html 提供,因此 CDATA 标记被忽略。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-19
  • 1970-01-01
相关资源
最近更新 更多