SpringMVC中Controller的@ResponseBody注解分析

  1. 云栖社区>
  2. 博客>
  3. 正文

SpringMVC中Controller的@ResponseBody注解分析

fuyifang 2016-10-11 21:32:44 浏览500
展开阅读全文

需求分析:需要 利用 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);  

且不会在页面上输出字符串。

原文地址:http://blog.csdn.net/huaishuming/article/details/31390161

网友评论

登录后评论
0/500
评论
fuyifang
+ 关注