我使用免費模板彈簧mvc。在ASP.NET中,你可以使用Response.Write(「hello,world」)直接寫入瀏覽器。spring mvc是否有response.write直接輸出到瀏覽器?
你可以在春季mvc做這個嗎?
我使用免費模板彈簧mvc。在ASP.NET中,你可以使用Response.Write(「hello,world」)直接寫入瀏覽器。spring mvc是否有response.write直接輸出到瀏覽器?
你可以在春季mvc做這個嗎?
您可以:
得到HttpServletResponse
並打印到其Writer
或OutputStream
(取決於你是否要發送文本或二進制數據)
@RequestMapping(value = "/something")
public void helloWorld(HttpServletResponse response) {
response.getWriter().println("Hello World")
}
@RequestMapping(value = "/something")
@ResponseBody
public String helloWorld() {
return "Hello World";
}
因此,您的Hello World
文本將被寫入響應流。
如果使用帶註釋的控制器(或者未標註爲此事,我相信......),你可以使用方法參數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)
我敢肯定,它有可能在某些情況下。例如,如果您有HttpServletResponse
對象可用(如您在Controller
中做的那樣,或者如果您編寫自己的View
),則可以撥打getWriter()
或getOutputStream()
並寫入該對象。
但是您需要小心以確保您所做的不會干擾您使用FreeMarker模板。我不確定你是否可以在FreeMarker模板中管理它。
如果你想送東西來的OutputStream,即使您正在使用freemaker的,只是用@ResponseBody
例如:
@RequestMapping(value = "report1", method = RequestMethod.GET, produces = "application/pdf")
@ResponseBody
public void getReport1(OutputStream out) {
因此然後@ResponseBody忽略的視圖解析?我正在使用freemarker – Blankman 2010-06-30 15:04:59
我認爲是...... – Bozho 2010-06-30 15:13:12
可以使用類似的方法將文件直接發送到輸出流嗎?謝謝。 – kmehta 2011-03-23 19:11:28