• SpringMVC中 Controller的 @ResponseBody注解分析


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

     
    1. /** 
    2.  * 返回处理结果给财付通服务器。 
    3.  * @param msg: Success or fail。 
    4.  * @throws IOException 
    5.  */  
    6. public void sendToCFT(String msg) throws IOException {  
    7.     String strHtml = msg;  
    8.     PrintWriter out = this.getHttpServletResponse().getWriter();  
    9.     out.println(strHtml);  
    10.     out.flush();  
    11.     out.close();  
    12.   
    13. }  


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


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


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

    原因是:

    @ResponseBody

    作用:

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

    使用时机:

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


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

     
    1. out.println(strHtml);  

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

  • 相关阅读:
    维护gcd的线段树 补发一波。。。
    BZOJ 4720: [Noip2016]换教室
    P2184 贪婪大陆 树状数组
    BZOJ 1047: [HAOI2007]理想的正方形 单调队列瞎搞
    POJ3280 Cheapest Palindrome 区间DP
    BZOJ 2288: 【POJ Challenge】生日礼物 堆&&链表
    BZOJ 4236: JOIOJI map瞎搞
    浅谈最近公共祖先(LCA)
    题解 BZOJ 1912 && luogu P3629 [APIO2010]巡逻 (树的直径)
    [笔记] 求树的直径
  • 原文地址:https://www.cnblogs.com/hyq0002013/p/6370729.html
Copyright © 2020-2023  润新知