我正在使用带有freetemplate的spring mvc。
在asp.net中,您可以使用Response.Write直接写入浏览器(“hello,world”);
你能在春天的mvc吗?
答案 0 :(得分:43)
你可以:
获取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
文本将被写入回复流。
答案 1 :(得分: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节)
答案 2 :(得分:1)
我确信在某些情况下这是可能的。例如,如果您拥有HttpServletResponse
对象(就像在Controller
中一样,或者您自己编写View
),那么您可以致电getWriter()
或getOutputStream()
并写信给他。
但是您需要小心确保您所做的事情不会干扰您对FreeMarker模板的使用。而且我不确定你是否可以在FreeMarker模板中管理它。
答案 3 :(得分:1)
如果您想向OutputStream发送内容,即使您使用的是Freemarker,也只需使用@ResponseBody 示例:
@RequestMapping(value = "report1", method = RequestMethod.GET, produces = "application/pdf")
@ResponseBody
public void getReport1(OutputStream out) {