<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Spring 注解之@RestController與@Controller的區(qū)別

        開發(fā)RESTful API 時,一般都會在Controller上加上@Controller注解,但是有時候加上@RestController,當(dāng)同事問為什么的時候,我也一臉懵逼,默默的看了資料,現(xiàn)在就說說他們的區(qū)別。

        @RestController注解等價(jià)于@ResponseBody + @Controller。@RestController和@Controller的共同點(diǎn)是都用來表示Spring某個類是否可以接收HTTP請求,二者區(qū)別: @RestController無法返回指定頁面,而@Controller可以前者可以直接返回?cái)?shù)據(jù),后者需要@ResponseBody輔助。下面詳細(xì)分析

      ① 是否可以返回頁面

        答:@RestController無法返回指定頁面,而@Controller可以。
        解析:對于Controller, 如果只是使用@RestController注解,則其方法無法返回指定頁面,此時配置的視圖解析器 InternalResourceViewResolver不起作用,返回的內(nèi)容就是 return 里的內(nèi)容。 如果需要返回到指定頁面,則需要用 @Controller配合視圖解析器InternalResourceViewResolver才行。
      ② 返回內(nèi)容
        如果需要返回JSON,XML或自定義mediaType內(nèi)容到頁面,@RestController自己就可以搞定,這個注解對于返回?cái)?shù)據(jù)比較方便,因?yàn)樗鼤詣訉ο髮?shí)體轉(zhuǎn)換為JSON格式。而@Controller需要在對應(yīng)的方法加上@ResponseBody注解。

      示例:

      import java.util.HashMap;
      import java.util.Map;
      
      import org.springframework.web.bind.annotation.RequestMapping;
      import org.springframework.web.bind.annotation.RequestMethod;
      import org.springframework.web.bind.annotation.RestController;
      
      @RestController
      @RequestMapping("/difference")
      public class DifferenceController {
      
          // 跳轉(zhuǎn)到上傳文件的頁面
          @RequestMapping(value = "/goToSuccessPage", method = RequestMethod.GET)
          public String goToSuccessPage() {
              // 跳轉(zhuǎn)到 視圖層 success.html失敗
              return "success";
          }
      
          @RequestMapping(value = "findAll", method = RequestMethod.GET)
          public Map<String, String> findAll() {
              Map<String, String> all = new HashMap<>();
              all.put("remark", "可以返回json,xml或自定義mediaType內(nèi)容到頁面");
              return all;
          }
      }

       

      @Controller
      @RequestMapping("/login")
      public class LoginController {
      
      
          @GetMapping(value = "/login")
          public String login() {
              // 跳轉(zhuǎn)到 視圖層 login.html
              return "login";
          }
          @RequestMapping(value = "/getJson", method = RequestMethod.GET)
          @ResponseBody
          public Map<String, String> getJson() {
              Map<String, String> all = new HashMap<>();
              all.put("remark", "結(jié)合注解 @ResponseBody 返回接送");
              return all;
          }
      }

       

           作為程序員,要有“刨根問底”的精神,知其然,更要知其所以然。這篇文章希望能抽絲剝繭,還原背后的原理。 
       
      posted @ 2019-03-02 18:19  樓蘭胡楊  閱讀(42548)  評論(2)    收藏  舉報(bào)
      主站蜘蛛池模板: 国产成人片无码视频在线观看| 伊人久久大香线蕉av五月天| 日韩丝袜亚洲国产欧美一区| 色综合五月伊人六月丁香| 国产精品爽黄69天堂A| 亚洲av日韩在线资源| 国产精品综合一区二区三区| 国产福利高颜值在线观看| 杭州市| 国产在线精彩自拍视频| 中文字幕无码免费久久99| 久章草在线毛片视频播放| 中文字幕无码不卡在线| 精品无码一区二区三区电影| 国产成人a在线观看视频免费| 天堂网亚洲综合在线| 亚洲国产99精品国自产拍| 极品白嫩少妇无套内谢| 亚洲成av人片天堂网无码 | 亚洲国产美女精品久久久| 国产精品一区二区小视频| 久久天天躁狠狠躁夜夜婷| 国产精品中文字幕av| 久久精品国产国产精品四凭| 中文字幕在线日韩| 高清自拍亚洲精品二区| 乱老年女人伦免费视频| 中文字幕av无码一区二区三区| 九九热免费精品在线视频| 免费网站看V片在线毛| a级国产乱理伦片在线观看al| 玩弄放荡人妻少妇系列| 亚洲AV成人片不卡无码| 亚洲精品香蕉一区二区| 超碰成人人人做人人爽| 喜德县| 国产区精品福利在线熟女| 搡老熟女老女人一区二区| 亚洲精品国模一区二区| 日韩中文字幕一二三视频| 麻豆国产va免费精品高清在线|