在src/main/resources下面有兩個資料夾,static和templates springboot預設 static中放靜態頁面,而templates中放動態頁面
靜態頁面:
這裡我們直接在static放乙個hello.html,然後直接輸入http://localhost:8080/hello.html便能成功訪問
(好像可以新建乙個public資料夾,也可以放靜態檔案)
也可以通過controller跳**
@controller然後輸入http://localhost:8080/hi就可以成功訪問public class hellocontroller
}
動態頁面:
動態頁面需要先請求伺服器,訪問後台應用程式,然後再轉向到頁面,比如訪問jsp。spring boot建議不要使用jsp,預設使用thymeleaf來做動態頁面。
現在pom中要新增thymeleaf元件
org.springframework.boot我們先在tempates資料夾中也新建乙個hello.html但內容不同,然後先試一下直接訪問該頁面。輸入http://localhost:8080/hello.html:spring-boot-starter-thymeleaf
結果顯然訪問的是靜態問價夾裡面的那個hello.html
然後我們現在再試一下用controller:
似乎無法訪問到hello.html了。。。這是因為:
靜態頁面的return預設是跳轉到/static/index.html,當在pom.xml中引入了thymeleaf元件,動態跳轉會覆蓋預設的靜態跳轉,預設就會跳轉到/templates/index.html,注意看兩者return**也有區別,動態沒有html字尾。
也就是我們要這樣改controller:
@controller然後就可以成功跳轉了public class hellocontroller
}
然後我們看看返回一點資料在前端利用thyemleaf來拿:
@controllerpublic class hellocontroller
}
效果:
如果不想返回檢視,則用@restcontroller
如果用了靜態模板你還想返回static中的頁面,那麼就要用重定向:
如果在使用動態頁面時還想跳轉到/static/index.html,可以使用重定向return "redirect:/index.html"。
return "redirect:hello.html";幾點tips:1.攔截的url最後不要跟檢視重合,否則會丟擲circular view path異常,我之前就是
@controller然後就報錯說會有個迴圈檢視的錯誤,反正以後注意就是。public class hellocontroller
}
2.每次改完都要重新停止應用,再重新啟動很煩~但springboot有個叫熱部署的東西,就是說在專案中修改**可以不用重新停止應用再重新啟動,可以自動重啟,這裡我們用的是devtools:
Spring boot 動態模板靜態化
渲染web頁面 在之前的示例中,我們都是通過 restcontroller來處理請求,所以返回的內容為json物件。那麼如果需要渲染html頁面的時候,要如何實現呢?模板引擎 在動態html實現上spring boot依然可以完美勝任,並且提供了多種模板引擎的預設配置支援,所以在推薦的模板引擎下,我...
spring boot 靜態資源
springboot中,預設的靜態資源路徑有 配置在resourceproperties類中 private static final string classpath resource locations 優先順序 靜態資源路徑 例如 webmvcautoconfiguration自動裝配類中,可...
springboot載入靜態資源
使用springboot寫了簡單的web專案,頁面使用jsp檔案 但是靜態資源js 載入不到,看了下官方文件發現是因為路徑不對 所以專案靜態資源應該配置在根路徑下這四個資料夾中是可以直接訪問到的 meta inf resources,public,resources,static下的資源,對映路徑 ...