Sto usando Spring MVC con freetemplate.Spring mvc ha response.write per l'output direttamente nel browser?
in asp.net, è possibile scrivere direttamente al browser usando Response.Write ("ciao, mondo");
Puoi farlo in mvc primavera?
Sto usando Spring MVC con freetemplate.Spring mvc ha response.write per l'output direttamente nel browser?
in asp.net, è possibile scrivere direttamente al browser usando Response.Write ("ciao, mondo");
Puoi farlo in mvc primavera?
È 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.
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)
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.
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) {
così @responsebody quindi ignora il resolver vista? Sto usando freemarker – Blankman
Penso di sì .... – Bozho
È possibile utilizzare un metodo simile per inviare un file direttamente allo stream di output? Grazie. – kmehta