spring mvc有response.write直接输出到浏览器吗?

我正在使用带有freetemplate的spring mvc。

在asp.net中,您可以使用Response.Write直接写入浏览器(“hello,world”);

你能在spring的mvc做这个吗?

你可以:

  • 获取HttpServletResponse并打印到其WriterOutputStream (取决于您是否要发送文本或二进制数据)

     @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文本将写入响应流。

如果您使用带注释的控制器(或者我认为是非注释的……),您可以在控制器中使用方法参数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) {