一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - springboot @Controller和@RestController的區別及應用詳解

springboot @Controller和@RestController的區別及應用詳解

2022-03-10 13:35冰霜秋月 Java教程

這篇文章主要介紹了springboot @Controller和@RestController的區別及應用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

@Controller和@RestController的區別及應用

@Controller和@RestController區別

在springboot開發中控制層使用注解@Controller時,加有@GetMapping(@PostMapping或@RequestMapping)注解的方法返回值對應的是一個視圖,而使用@RestController返回值對應的是json數據,而@Controller+@ResponseBody的作用相當于@RestController。

@Controller的應用

先在application.properties配置文件中配置

spring.mvc.view.prefix=classpath:/templates/
spring.mvc.view.suffix=.html

然后在控制層CustomerController類的代碼為

@Controller
public class CustomerController {
  @Resource
  CustomerServiceI customerServiceI;
  @GetMapping("/")
  public String index() {
      return "redirect:/list";
  }
  @GetMapping("/list")
  public String list(Model model) {
      List<Customer> users = customerServiceI.getUserList();
      model.addAttribute("users",users);
      return "list";
  }
}

啟動程序后在瀏覽器輸入localhost:8080/list訪問頁面即為templates文件夾下的list.html

springboot @Controller和@RestController的區別及應用詳解

@RestController的應用

控制層CustomerController類的代碼為

@RestController
public class CustomerController {
  @Resource
  CustomerServiceI customerServiceI;
  @GetMapping("/")
  public String index() {
      return "redirect:/list";
  }
  @GetMapping("/list")
  public List<Customer> list(Model model) {
      List<Customer> users = customerServiceI.getUserList();
      model.addAttribute("users",users);
      return users;
  }
}

啟動程序后在瀏覽器輸入localhost:8080/list訪問效果如下

springboot @Controller和@RestController的區別及應用詳解

 

@Controller和@RestController區別的小坑

這兩個的區別其實是個很簡單的問題,但是對于初學者可能遇到了會掉坑里。

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

1.如果注解Controller使用@RestController

則Controller中的方法無法返回jsp頁面,或者html,配置的視圖解析器 InternalResourceViewResolver不起作用,返回的內容就是Return 里的內容。

代碼如圖:

springboot @Controller和@RestController的區別及應用詳解

結果如圖:

springboot @Controller和@RestController的區別及應用詳解

2.如果需要返回到指定頁面(jsp/html)

則需要用 @Controller配合視圖解析器InternalResourceViewResolver才行。

代碼如圖:

springboot @Controller和@RestController的區別及應用詳解

結果如圖:

springboot @Controller和@RestController的區別及應用詳解

如果需要返回JSON,XML或自定義mediaType內容到頁面,則需要在對應的方法上加上@ResponseBody注解。

代碼如圖:

springboot @Controller和@RestController的區別及應用詳解

結果如圖:

springboot @Controller和@RestController的區別及應用詳解

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持服務器之家。

原文鏈接:https://blog.csdn.net/chenbingbing111/article/details/81070829

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 动漫美女强行被吸乳做羞羞事 | 国产一卡2卡3卡四卡精品网 | 国产一级片免费观看 | 国产精品久久久久一区二区三区 | 5g影院天天5g天天爽大陆 | 天堂色| 艹处女| 欧美春宫| 亚洲天堂v| 狠狠色婷婷狠狠狠亚洲综合 | 日韩理论片 | 欧美一级一级做性视频 | 5555国产在线观看精品 | 亚欧日韩| 国产日韩高清一区二区三区 | 亚洲国产一区二区a毛片 | 男人的天堂久久爱 | rylskyart系列视频| 91精品婷婷国产综合久久8 | 亚洲国产精品综合久久一线 | 国产精品嫩草影院一二三区入口 | 欧美老骚| futa百合文| 欧美一级特黄aaa大片 | 人成午夜免费大片在线观看 | 不卡一区二区三区卡 | 无码爽死成人777在线观看网站 | chinesespanking网站 | 欧美vpswindows| 亚洲性久久久影院 | 欧美精品v日韩精品v国产精品 | 天天操免费视频 | 色综合网亚洲精品久久 | 免费观看视频在线 | 日韩黄色录像 | 男生同性视频twink在线 | 韩国免费视频 | 毛片资源站 | 精品无人区乱码1区2区3区免费 | 日本一片免费观看高清完整 | 欧美大屁屁 |