2010-06-30 11 views

risposta

42

È possibile:

  • otteniate HttpServletResponse e stampare al suo Writer o OutputStream (a seconda se si desidera inviare testo o dati binari)

    @RequestMapping(value = "/something") 
    public void helloWorld(HttpServletResponse response) { 
        response.getWriter().println("Hello World") 
    } 
    
  • Uso @ResponseBody:

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

Così il testo Hello World verrà scritto nel flusso di risposta.

+0

così @responsebody quindi ignora il resolver vista? Sto usando freemarker – Blankman

+0

Penso di sì .... – Bozho

+0

È possibile utilizzare un metodo simile per inviare un file direttamente allo stream di output? Grazie. – kmehta

1

Se si utilizza un controller annotato (o non annotati per quella materia credo ...), è possibile utilizzare il metodo di ragionamento HttpServletResponse nel controller per ottenere il flusso di output e poi scrivere sullo schermo - vedi http://download.oracle.com/docs/cd/E17410_01/javaee/6/api/javax/servlet/ServletResponse.html#getOutputStream%28%29

Per ulteriori informazioni sui parametri che è possibile utilizzare nel vostro controller/gestori, vedere http://static.springsource.org/spring/docs/2.5.x/reference/mvc.html (sezione 13.11.4)

0

sono sicuro che è possibile in alcuni contesti. Ad esempio, se hai a disposizione l'oggetto HttpServletResponse (come in un Controller o se scrivi il tuo), puoi chiamare getWriter() o getOutputStream() e scrivere a quello.

Tuttavia, è necessario fare attenzione affinché ciò che si sta facendo non interferisca con l'utilizzo dei modelli di FreeMarker. E non sono sicuro di poterlo gestire da un modello di FreeMarker.

1

Se si desidera inviare qualcosa a OutputStream, anche se si utilizza Freemaker, basta usare @ResponseBody

esempio:

@RequestMapping(value = "report1", method = RequestMethod.GET, produces = "application/pdf") 
    @ResponseBody 
    public void getReport1(OutputStream out) { 
Problemi correlati