2014-10-19 121 views
0

我有处理表单提交的Spring MVC控制器。我想要做的是让表单提交时控制器返回一个XML到浏览器。但thymeleaf模板解析器输出一个错误,指出它无法解析模板“结果”在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模板。

因此,没有春天真正支持XML返回?

+0

您使用的是Spring Boot吗?搜索的扩展名基于模板配置,我认为Boot只是注册了'.html'。 – chrylis 2014-10-19 04:22:00

+0

是的,我是。我只是继续从初学者教程之一开发(处理表单提交)。除此之外,如果我使用@restcontroller,我可以返回JSON字符串,所以它似乎开机支持不仅仅是HTML – kype 2014-10-19 04:26:19

回答

2

当然,Spring支持XML。

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

+0

是的,我结束了使用RestController。谢谢 – kype 2014-10-19 11:26:23

+0

啊,我以为@kype想要一些自定义XML的方法。内置的Spring REST支持绝对是更好的选择。 – chrylis 2014-10-19 13:40:57