• 测试开发进阶——spring boot——MVC——@restcontroller和@controller的区别


    @RestController注解,相当于@Controller+@ResponseBody两个注解的结合,返回json数据不需要在方法前面加@ResponseBody注解了;

    但使用@RestController这个注解,就不能返回jsp,html页面,视图解析器无法解析jsp,html页面

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

    @ResponseBody 表示该方法的返回结果直接写入 HTTP response body 中,一般在异步获取数据时使用【也就是AJAX】,

    在使用 @RequestMapping后,返回值通常解析为跳转路径,但是加上 @ResponseBody 后返回结果不会被解析为跳转路径,而是直接写入 HTTP response body 中。

    比如异步获取 json 数据,加上 @ResponseBody 后,会直接返回 json 数据。

    @RequestBody 将 HTTP 请求正文插入方法中,使用适合的 HttpMessageConverter 将请求体写入某个对象。

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

    @RestController注解相当于@ResponseBody + @Controller合在一起的作用。

    1) 如果只是使用@RestController注解Controller,则Controller中的方法无法返回jsp页面,或者html,

        配置的视图解析器 InternalResourceViewResolver不起作用,返回的内容就是Return 里的内容。

    2) 如果需要返回到指定页面,则需要用 @Controller配合视图解析器InternalResourceViewResolver才行。
        如果需要返回JSON,XML或自定义mediaType内容到页面,则需要在对应的方法上加上@ResponseBody注解。

    3)如果需要返回JSON,XML或自定义mediaType内容到页面,则需要在对应的方法上加上@ResponseBody注解。

  • 相关阅读:
    课堂作业04 2017.10.27
    课程作业 03 动手动脑 2017.10.20
    课程作业 03 2017.10.20
    HDU 3974 Assign the task
    POJ 2155 Matrix
    POJ 2481 Cows
    HDU 3038 How Many Answers Are Wrong
    CS Academy Array Removal
    POJ_1330 Nearest Common Ancestors LCA
    CF Round 427 D. Palindromic characteristics
  • 原文地址:https://www.cnblogs.com/xiaobaibailongma/p/15111561.html
Copyright © 2020-2023  润新知