当前位置: 代码迷 >> java >> spring mvc有response.write直接输出到浏览器吗?
  详细解决方案

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

热度:91   发布时间:2023-07-27 09:45:24.0

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

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

你能在春天的mvc做这个吗?

你可以:

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

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

如果您想向OutputStream发送内容,即使您使用的是Freemaker,也只需使用@ResponseBody即可

例:

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

如果您使用带注释的控制器(或者我认为是非注释的......),您可以在控制器中使用方法参数HttpServletResponse来获取输出流,然后写入屏幕 - 请参阅

有关可在控制器/处理程序中使用的参数的更多信息,请参阅 (第13.11.4节)

我确信在某些情况下这是可能的。 例如,如果您可以使用HttpServletResponse对象(就像在Controller ,或者您编写自己的View ),那么您可以调用getWriter()getOutputStream()并写入。

但是您需要小心确保您所做的事情不会干扰您对FreeMarker模板的使用。 而且我不确定你是否可以在FreeMarker模板中管理它。

  相关解决方案