有人可以解释一下 struts2 XSL ResultType 是如何工作的吗?

发布于 2024-07-24 08:16:56 字数 433 浏览 4 评论 0原文

我试图弄清楚如何使用 struts2 XSL ResultType。 我只是不知道它应该如何工作,除了 官方文档,我在网上找到了两篇试图解释它的文章(对我来说没有成功)。

我对其工作原理的理解是创建一个 xsl 样式表,然后我有一个 struts 操作设置,它以某种方式返回 xml 文档。 该操作将指定的 xsl 样式表应用到 xml 文档,并将所需的 xhtml 输出到浏览器。 它是否正确?

如果我的理解是正确的,有人可以提供一个清晰、简洁的解释,说明我如何设置操作类以返回可以转换的 xml 文档吗?

如果我的理解不正确,有人可以纠正我并解释它应该如何使用吗?

谢谢!

I'm trying to figure out how to use the struts2 XSL ResultType. I just can't figure out how it is supposed to work and aside from the official documentation, I've found maybe two articles online that tried to explain it (unsuccessfully for me).

My understanding of how it works is I create an xsl stylesheet, then I have a struts action setup that somehow returns an xml document. The action applies the assigned xsl stylesheet to the xml document and it outputs the desired xhtml to the browser. Is this correct?

If my understanding is correct, can someone provide a clear, concise explanation of how I set up my action class to return an xml document that can be transformed?

If my understanding is incorrect, can someone please correct me and explain how it is supposed to be used?

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

坐在坟头思考人生 2024-07-31 08:16:56

XSLTResult 在内部生成 XML 以使用给定模板进行后处理。 如果您使用实际上不转换任何内容的 XSLT 文件,您将得到原始结果:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="result">
    <xsl:copy-of select="."></xsl:copy-of>
  </xsl:template>
</xsl:stylesheet>

我将这个模板用于所有 XML 结果。 如果你觉得这很愚蠢,我必须同意。 我在互联网上找到了许多教程,这些教程说您可以从结果定义中删除 location 参数,但这给我带来了以下错误:

javax.xml.transform.TransformerException:不支持操作。 - [未知位置]

The XSLTResult internally produces the XML to postprocess with the given template. If you use an XSLT file that doesn't actually transform anything, you get the raw result:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="result">
    <xsl:copy-of select="."></xsl:copy-of>
  </xsl:template>
</xsl:stylesheet>

I use this template for all my XML results. If this seems silly to you, I have to agree. I found a number of tutorials on the interwebs which said that you could just drop the locationparameter from the result definition, but this led to the following error for me:

javax.xml.transform.TransformerException: Operation not supported. - [unknown location]

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文