Как мне преобразовать массив Java-бинов в XML с помощью struts2?
Вопрос
Мой вывод должен быть примерно таким:
<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:Операция не поддерживается.- [неизвестное место]
Поэтому я попробовал использовать шаблон, но он вообще не отображал список.Вместо этого я получаю
- все свойства бобов
toString()
редактировали вместе - пустой документ
- пустой
<foo />
тег (не<foos />
, как ни странно)
Я не смог найти учебник, который помог бы мне, ни по рендерингу Beans->XML, ни по XSLT.Одна из проблем заключается в том, что мне трудно подобрать хорошие условия поиска:поиск в Google "struts xml" и тому подобных возвращает огромное количество совершенно нерелевантных ссылок о вещах в struts.xml
, исключать «struts.xml» из результатов также бесполезно, поскольку страницы, которые я ищу, скорее всего, будут содержать примеры фрагментов struts.xml.
Думаю, шаблоны мне не особо-то и понадобятся, так что если можно обойтись без них, отлично.
Решение
У некоторых комментаторов этого сообщения в блоге была та же ошибка, о которой вы упомянули.Может быть, один из опубликованных обходных путей поможет?
http://cse-mjmcl.cse.bris.ac.uk/blog/2007/09/10/1189430125294.html