zoukankan      html  css  js  c++  java
  • @ResponseBody注解

    作用

      @ResponseBody注解表示该方法的返回结果直接写入HTTP response body

    原理

      在使用此注解之后跳过视图处理器,将返回的对象通过适当的转换器转换为指定的格式之后,直接将数据写入到输出流中。

      它的效果等同于通过response对象输出指定格式的数据:response.getWriter().write(jsonArray.toString());

      “通过适当的转换器转换为指定的格式”,即:调用适合HttpMessageConverter的Adapter转换对象

      HttpMessageConverter 接口,需要开启 <mvc:annotation-driven /> ,这个默认配置中,AnnotationMethodHandlerAdapter 将会初始化7个转换器:

        ByteArrayHttpMessageConverter
        StringHttpMessageConverter
        ResourceHttpMessageConverter
        SourceHttpMessageConverter
        XmlAwareFormHttpMessageConverter
        Jaxb2RootElementHttpMessageConverter
        MappingJacksonHttpMessageConverter

    用途

      通常用来返回JSON数据或者是XML数据

      1、一般在异步获取数据时使用
      2、觉得也可以用在提供接口上,实现前后端分离,在其他地方(比如手机的混合APP中)直接调用后端数据,返回json

      @ResponseBody必须要有返回对象,(序列化一个返回对象然后注入解释)可以在配置文件中指定注解的对象,可以是json/html/xml等

    和RequestBody 比较

      Spring 3.X系列增加了新注解 @ResponseBody , @RequestBody
      @RequestBody 将HTTP请求正文转换为适合的HttpMessageConverter对象。
      @ResponseBody 将内容或对象作为 HTTP 响应正文返回,并调用适合HttpMessageConverter的Adapter转换对象,写入输出流。

  • 相关阅读:
    MY_0003:设置界面显示单位
    H5_0024:对于事先无法确定css大小的情况,可以通过JS动态修改
    H5_0023:html页面禁止放大缩小页面
    MY_0002:导出单位设置
    MY_0001:添加命令到自定义工具栏
    H5_0020:判断安卓苹果平台
    Web_0003:关于PHP上传文件大小的限制
    H5_0019:JS中定义json结构
    H5_0018:z-index失效的原因
    H5_0017:通过元素自定义属性值获取元素对象,并获取属性值
  • 原文地址:https://www.cnblogs.com/acm-bingzi/p/responseBody.html
Copyright © 2011-2022 走看看