spring boot之訪問靜態頁面


樓主前兩天自學spring boot,然后在學習的過程中,出現一個疑問,就是如何去訪問靜態的html網頁,這個問題,樓主上網上搜了下,找到的是在resource目錄下建立一個templates文件夾,然后html網頁放在其文件夾下:

然后樓主照做,發現還是訪問不了,然后發現是需要寫一個controller訪問然后跳轉,那就又寫了一個controller,截圖如下:

做完后,發現還是不行,這時候發現需要在pom中添加這個依賴

然后還是不行,這時候樓主就納悶了,沒問題啊,后來經過一段時間對比,發現,樓主的注解寫錯了,不應該寫@RestController,應該寫@Controller,然后樓主就新建了一個Controller,截圖如下:

這樣配置后,進行測試,結果發現是可以的:

那么問題來了,為什么換了controller注解就好了呢?

我們來對比下restController和controller的區別:

@RestController is a stereotype annotation that combines @ResponseBody and @Controller.
意思是:
@RestController注解相當於@ResponseBody + @Controller合在一起的作用。

1)如果只是使用@RestController注解Controller,則Controller中的方法無法返回jsp頁面,配置的視圖解析器InternalResourceViewResolver不起作用,返回的內容就是Return 里的內容。

例如:本來應該到success.html頁面的,則其顯示success.

2)如果需要返回到指定頁面,則需要用 @Controller配合視圖解析器InternalResourceViewResolver才行。

3)如果需要返回json或者xml或者自定義mediaType內容到頁面,則需要在對應的方法上加上@ResponseBody注解


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM