2013-05-28 3 views
-1

Я извлекаю внешнюю веб-страницу (как строку) из моего контроллера. Как я могу вернуть эту строку, содержащую HTML, как ModelAndView?Как создать Spring ModelAndView из html String?

+0

Извините, но вам не кажется, что ваш вопрос в этой форме немного запутан? – NINCOMPOOP

+1

? Что сбивает с толку, я попытаюсь объяснить? У меня есть String, содержащий html, и я хочу вернуть его из моего контроллера в виде ModelAndView. – Tarken

+2

Просто выпустите его, взяв HttpServletResponse как параметр и записывая в выходной поток, который вы можете получить из этого, raw. –

ответ

4

Если вы хотите вернуть эту веб-страницу клиенту/браузеру, вам не нужно создавать ModelAndView.

Вместо этого сделать

@Controller 
public class MyController() { 

    @RequestMapping(...) 
    @ResponseBody 
    public String controllerMethod() { 
     String htmlDocument = getHtmlFromSomeWhere(); 
     return htmlDocument; 
    } 
} 

Если вы должны вернуть ModelAndView к вам придется писать вы владеете View реализации. Посмотрите на AbstractPdfView для некоторых шаблонов.

return ModelAndView(new MyPlainHtmlView(htmlDocument)); 


public class MyPlainHtmlView implements View { 
    .... 

    private final String htmlDocument; 

    public MyPlainHtmlView(String htmlDocument) { 
     this.htmlDocument = htmlDocument; 
    } 

    @Override 
    renderMergedOutputModelMap<String, Object> model, HttpServletRequest request, HttpServletResponse response) { 
      ServletOutputStream out = response.getOutputStream(); 
      out.write(this.htmlDocument.getBytes("utf-8")); 
    } 
} 
Смежные вопросы