SpringMVC中Controller的@ResponseBody注解分析

来源:互联网 发布:中商情报网 知乎 编辑:程序博客网 时间:2024/06/05 11:52

需求分析:需要 利用    out 对象返回给财付通是否接收成功 。那么将需要如下代码:

    /**     * 返回处理结果给财付通服务器。     * @param msg: Success or fail。     * @throws IOException     */    public void sendToCFT(String msg) throws IOException {        String strHtml = msg;        PrintWriter out = this.getHttpServletResponse().getWriter();        out.println(strHtml);        out.flush();        out.close();    }

那么在Controller中的方法若用此方法注解:


//财付通返回URL @ResponseBody         @RequestMapping("/pay/tenpay")public String tenpayReturnUrl(HttpServletRequest request, HttpServletResponse response) throws Exception {unpackCookie(request, response);payReturnUrl.payReturnUrl(request, response);return "pay/success";}


用此办法注解将会在访问的页面上输出 字符串:strHtml,而不会跳转页面至pay/success.jsp页面

原因是:

@ResponseBody

作用:

      该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。

使用时机:

      返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)使用;


那么只需删除注解:@ResponseBody 便可以返回页面pay/success.jsp。而且达到了与客户端后台交互的效果。即:

  out.println(strHtml);
且不会在页面上输出字符串。


11 0
原创粉丝点击