【问题标题】:Return XML in a Spring MVC controller在 Spring MVC 控制器中返回 XML
【发布时间】:2014-12-14 08:22:58
【问题描述】:

我有处理表单提交的 Spring MVC 控制器。我要做的是让控制器在提交表单时将 XML 返回给浏览器。但是百里香模板解析器输出一个错误,说它无法解析模板“结果”

我在资源 > 模板中有一个 result.xml。

我的controller.java如下

@Controller
public class WebController {

    @RequestMapping(value="/simcheck", method=RequestMethod.GET)
    public String greetingForm(Model model) {
        model.addAttribute("SimilarityForm", new SimilarityForm());
        return "SimilarityForm";
    }

    @RequestMapping(value="/simcheck", method=RequestMethod.POST)
    public String greetingSubmit(@ModelAttribute SimilarityForm formData, Model model) throws IOException {

        Similarity s = new Similarity();        
        Scores scores = s.calculateSim(formData.getQuery(), formData.getReference());

        formData.setQuery("Percentage :" + scores.getLsaScore().toString());

        model.addAttribute("SimilarityForm", formData);

        return "result";
    }

}

但是,如果我将我的 result.XML 重命名为 result.html,它可以正常工作,并且它会完美地返回一个 HTML 模板。

那么 Spring 真的支持 XML 返回吗?

【问题讨论】:

  • 你在使用 Spring Boot 吗?搜索到的扩展是基于模板配置的,我认为Boot只是注册了.html
  • 是的,我是。我刚刚从一个入门教程(处理表单提交)继续开发。此外,如果我使用@restcontroller,我可以返回 json 字符串,所以似乎 boot 支持的不仅仅是 html

标签: spring rest spring-mvc thymeleaf


【解决方案1】:

当然,Spring 支持 XML。

您必须使用@ResponseBody(或@RestController,如果您要为所有控制器方法返回XML 或JSON)并从控制器方法返回一个带有JAXB 注释的对象。

【讨论】:

  • 是的,我最终使用了 RestController。谢谢
  • 啊,我以为@kype 想要一些自定义 XML 用于该方法。内置 Spring REST 支持绝对是更可取的选择。
猜你喜欢
  • 2015-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-03
  • 2018-04-27
  • 1970-01-01
相关资源
最近更新 更多