@ResponseBody的使用讲解

    xiaoxiao2021-03-27  38

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

    [java]  view plain  copy   /**   * 返回处理结果给财付通服务器。   * @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中的方法若用此方法注解:

    [java]  view plain  copy       //财付通返回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。而且达到了与客户端后台交互的效果。即:

    [java]  view plain  copy   out.println(strHtml);   且不会在页面上输出字符串。

    转载请注明原文地址: https://ju.6miu.com/read-664463.html

    最新回复(0)