本文主要是介绍SpringMVC中Controller的@ResponseBody注解分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
需求分析:需要 利用 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);
这篇关于SpringMVC中Controller的@ResponseBody注解分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!