2014-10-19 4 views
0

У меня есть контроллер Spring MVC, который обрабатывает представление формы. Я пытаюсь заставить контроллер вернуть XML в браузер при отправке формы. Но thymeleaf template resolver выводит ошибку, говорящую о том, что ее не удалось разрешить шаблон «result»Возврат XML в контроллере Spring MVC

У меня есть 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

+0

Да, я. Я просто продолжил разработку с одного из стартовых руководств (обработка формы обработки). Кроме того, если я использую @restcontroller, я могу вернуть строки json, поэтому кажется, что загрузка поддерживает больше, чем просто html – kype

ответ

2

Несомненно, Spring поддерживает XML.

Вы должны использовать @ResponseBody (или @RestController, если вы собираетесь вернуть XML или JSON для всех методов контроллера) и вернуть объект JAXB-annotated из метода контроллера.

+0

Да, я закончил использование RestController. Спасибо – kype

+0

А, я подумал, что @kype хочет создать собственный XML-метод. Встроенная поддержка Spring REST - это, безусловно, предпочтительный вариант. – chrylis

Смежные вопросы