zoukankan      html  css  js  c++  java
  • 在什么情况下使用@ResponseBody 注解?

     1 @Controller
     2 @RequestMapping("/")
     3 public class HelloController {
     4    @RequestMapping(value = "/helloWorld", method = RequestMethod.GET)
     5    @ResponseBody
     6    public String helloWorld()  {
     7       return"Hello World";
     8    }
     9  }
    10 
    11 运行以上代码,在浏览器地址栏输入: http://localhost:8080/helloWorld
    12 运行结果,页面上输出 Hello World

    如果不加@responseBody注解,运行结果会怎样?
    结果表明:如果在一个方法上使用了@RequestMapping注解,这时候,方法的返回值通常解析为跳转的路径, 也就是说,要跳转到指定的jsp页面。在这个代码实例中,要跳转到的是 Hello World.jsp 页面。 因为工程中尚未添加这个jsp文件,所以报出了 404 错误 (The requested resource is not available)。 
    如果添加了 @ResponseBody 这个注解, 则表明该方法的返回值直接写入到 HTTP Response Body 中。  这就是说,如果返回的是JSON, 就得必须添加 @ResponseBody 这个注解
    一般在异步获取数据时使用,在使用@RequestMapping后,返回值通常解析为跳转路径,加上@responsebody后返回结果不会被解析为跳转路径,而是直接写入HTTP response body中。比如异步获取json数据,加上@responsebody后,会直接返回json数据。


  • 相关阅读:
    java Math类
    JAVA Date类与Calendar类【转】
    java Runtime类
    Java System类
    java 多线程
    java 包
    Java 内部类
    java 抽象类 以及模块方法设计模式,接口
    java 单例模式
    java 关于Java中静态代码块以及构造函数的执行先后顺序
  • 原文地址:https://www.cnblogs.com/lfyu/p/8258169.html
Copyright © 2011-2022 走看看