• 046_SSM——@ReposeBody标签其什么作用?为什么要和注解驱动一块使用?


    一般服务器向浏览器返回json字符串是,和普通的字符串返回的格式是不一样的。
    respose.setContentype("application/json;charset=utf-8")
    respose.setContentype("html/text;charset=utf-8")
    ===============================================================

    当返回值是对象时

    框架处理返回一个Student对象,使用的MappingJackson2HttpMessageConverter这个类。
    内部使用jackson的ObjectMapper,把student转为json。
    在使用@ResponseBody输出到浏览器。 默认的ContextType:"application/json;charset=UTF-8"
    ================================================================

    当返回值是字符串是,注意编码格式

    当返回值是String时,如果有@resposBody注解就是字符串,没有就是view视图路径。
    但是会有乱码的情况,因为这里面会使用消息解析器的 StringHttpMessageConverter,
    默认编码方式是iso-8859-1,我们需要在 @RequestMapping(produces = "text/plain;charset=utf-8")设置相应编码

    ==================================================================

    为什么要使用注解驱动?

    我们的@RTeposeBody注解只是负责将我们的json字符串响应到浏览器,但是注解就不一样了,

    注解驱动里面有一个消息转换器接口,他有七个实现类,是专门负责进行数据转换的,我们上面的MappingJackson2HttpMessageConverter

    与 StringHttpMessageConverter都是他的实现类。

    简单来说就是@ResposBody管理的是相应请求,但是注解驱动管理的就是消息转换。

    =================================================================

  • 相关阅读:
    竞品选择的背后
    小程序UI
    效果CSS实现三角
    pmp心得
    [已读]响应式web设计实践
    [在读]HTML5程序设计(第二版)
    [已读]响应式web设计
    [已读]HTML5与CSS3权威指南第二版(下)
    [已读]编写可维护的javascript
    [未读]JavaScript高效图形编程
  • 原文地址:https://www.cnblogs.com/pogusanqian/p/12427146.html
Copyright © 2020-2023  润新知