2010-06-30 2 views

ответ

42

Вы можете:

  • получить HttpServletResponse и печатать его Writer или OutputStream (в зависимости от того, нужно ли отправлять текстовые или двоичные данные)

    @RequestMapping(value = "/something") 
    public void helloWorld(HttpServletResponse response) { 
        response.getWriter().println("Hello World") 
    } 
    
  • Используйте @ResponseBody:

    @RequestMapping(value = "/something") 
    @ResponseBody 
    public String helloWorld() { 
        return "Hello World"; 
    } 
    

Таким образом, ваш текст Hello World будет записан в поток ответов.

+0

так @responsebody затем игнорирует вид распознаватель? Я использую freemarker – Blankman

+0

Я думаю, да .... – Bozho

+0

Можно ли использовать аналогичный метод для отправки файла непосредственно в выходной поток? Спасибо. – kmehta

1

Если вы используете аннотированный контроллер (или не аннотированный по этому вопросу, я считаю ...), вы можете использовать метод аргумент HttpServletResponse в контроллере, чтобы получить выходной поток, а затем записать на экран - см http://download.oracle.com/docs/cd/E17410_01/javaee/6/api/javax/servlet/ServletResponse.html#getOutputStream%28%29

Для получения дополнительной информации о параметрах, которые вы можете использовать в ваших контроллерах/обработчиках см http://static.springsource.org/spring/docs/2.5.x/reference/mvc.html (раздел 13.11.4)

0

я уверен, что это возможно в некоторых контекстах. Например, если у вас есть HttpServletResponse объект, доступный вам (как вы делаете в Controller, или если вы пишете свой собственный View), вы можете позвонить getWriter() или getOutputStream() и написать на это.

Но вам нужно быть осторожным, чтобы убедиться, что то, что вы делаете, не мешает вам использовать шаблоны FreeMarker. И я не уверен, сможешь ли вы управлять им из шаблона FreeMarker.

1

Если вы хотите отправить что-то OutputStream, даже если вы используете Freemaker, просто используйте @ResponseBody

пример:

@RequestMapping(value = "report1", method = RequestMethod.GET, produces = "application/pdf") 
    @ResponseBody 
    public void getReport1(OutputStream out) { 
Смежные вопросы