XML-представление с Spring MVC - PullRequest
1 голос
/ 18 января 2011

это действительно новый вопрос: Как вывести XML с помощью Spring MVC версии 3.0.3.RELEASE? В настоящее время я использую Tiles2 с JSTL, и когда я хочу вывести PDF, то есть я просто создаю средство визуализации представления, расширяющее AbstractPdfView следующим образом:

public class PDFOutput extends AbstractPdfView {

    @Override
    protected void buildPdfDocument(Map<String, Object> model, Document doc,
    PdfWriter pdfWriter, HttpServletRequest request, HttpServletResponse response)
    throws Exception {

В таком случае какой класс AbstractView следует расширить для создания XML-документа?

Заранее спасибо,

Ответы [ 2 ]

5 голосов
/ 18 января 2011

Вероятно, проще всего расширить само AbstractView.Мы делаем что-то вроде этого:

public class XMLView extends AbstractView {

  private final Document _xml;

  public XMLView(final Document xml) {
    _xml = xml;
  }

  @Override
  protected void renderMergedOutputModel(final Map<String, Object> model, final HttpServletRequest request, final HttpServletResponse response) throws Exception {
    response.setContentType("application/xml");
    response.setCharacterEncoding("UTF-8");
    // do stuff to serialize _xml to response.getOutputStream()
   }
}
2 голосов
/ 18 января 2011

Благодаря David North , используя dom4j , в результате получается следующий код:

public class XMLView extends AbstractView {

    @Override
    protected void renderMergedOutputModel(Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) throws Exception {

    // set headers
    response.setContentType("application/xml");
    response.setCharacterEncoding("UTF-8");

    // construct XML document

    // output XML as String
    response.getOutputStream().print(doc.asXML());
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...