如何使用 struts2 将 Java bean 数组呈现为 XML?

发布于 2024-08-09 19:27:24 字数 1258 浏览 2 评论 0原文

我的输出应该是这样的:

<result>
  <item>
    <id>123</id>
    <src>123</src>
    <dst>123</dst>
  </item>
  <item>
  <!-- ... -->
  </item>
</result>

并且操作类将有一个方法 getFoos ,它返回一个统一对象的数组,例如:

class Foo {
  // ...
  public long getId() { ... }
  // ...
}

我正在使用这样的 XSLTResult:

<action name="channels" method="loadAll" class="com.econemon.suite.api.impl.FooAction">
  <result name="success" type="xslt">
    <param name="exposedValue">foos</param>
  </result>
</action>

因为我不想要对 XML 进行后处理,在阅读了几篇说这可行的教程后,我没有指定任何模板。相反,它给了我这个错误:

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

所以我尝试使用模板,但它根本没有呈现列表。相反,我将

  • bean toString() 的所有属性放在一起
  • 空文档
  • 标记(而不是 ) code>,奇怪的是)

我找不到对我有帮助的教程,无论是关于 Beans->XML 渲染还是 XSLT。一个问题是我很难找到好的搜索词:谷歌搜索“struts xml”和类似的内容会返回大量与 struts.xml 中的内容完全不相关的链接,其中不包括“struts.xml”结果也不好,因为我正在寻找的页面可能有示例 struts.xml 片段。

我认为我并不真正需要模板,所以如果可以不需要模板,那就太好了。

My output should be something like this:

<result>
  <item>
    <id>123</id>
    <src>123</src>
    <dst>123</dst>
  </item>
  <item>
  <!-- ... -->
  </item>
</result>

And the action class would have a method getFoos which returns an array of uniform objects, e. g. like this:

class Foo {
  // ...
  public long getId() { ... }
  // ...
}

I'm using the XSLTResult like this:

<action name="channels" method="loadAll" class="com.econemon.suite.api.impl.FooAction">
  <result name="success" type="xslt">
    <param name="exposedValue">foos</param>
  </result>
</action>

Since I don't want to postprocess the XML, I didn't specify any template, after reading several tutorials that said this would work. Instead, it gives me this error:

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

So I tried using a template, but it never rendered a list at all. Instead I get

  • all properties of the beans toString()ed together
  • empty document
  • empty <foo /> tag (not <foos />, strangely)

I couldn't find a tutorial that helped me, neither on Beans->XML rendering nor XSLT. One problem is that I have trouble coming up with good search terms: googling "struts xml" and similar returns a huge amount of completely irrelevant links about stuff in struts.xml, excluding "struts.xml" from the results is no good either, because pages I'm looking for would likely have example struts.xml snippets.

I think I wouldn't really need the templates, so if it's possible to do without, great.

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

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

发布评论

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

评论(1

眼眸印温柔 2024-08-16 19:27:24

这篇博文的一些评论者也有你提到的同样的错误。也许发布的解决方法会有所帮助?

http://cse-mjmcl.cse。 bris.ac.uk/blog/2007/09/10/1189430125294.html

Some commenters on this blog post had the same error you mentioned. Maybe on of the posted workaround will help?

http://cse-mjmcl.cse.bris.ac.uk/blog/2007/09/10/1189430125294.html

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