這篇文章給大家分享的是有關(guān)Spring Boot與kotlin如何使用Thymeleaf模板引擎渲染web視圖的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。
成都創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供吉木乃網(wǎng)站建設(shè)、吉木乃做網(wǎng)站、吉木乃網(wǎng)站設(shè)計(jì)、吉木乃網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、吉木乃企業(yè)網(wǎng)站模板建站服務(wù),十多年吉木乃做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
靜態(tài)資源訪問
在我們開發(fā)Web應(yīng)用的時(shí)候,需要引用大量的js、css、圖片等靜態(tài)資源,使用Spring Boot 與 kotlin如何去支持這些靜態(tài)資源?,很簡單。
默認(rèn)配置
Spring Boot默認(rèn)提供靜態(tài)資源目錄位置需置于 classpath 下,目錄名需符合如下規(guī)則:
/static /public /resources /META-INF/resources
舉例:我們可以在src/main/resources/目錄下創(chuàng)建static,在該位置放置一個(gè)圖片文件。啟動程序后,嘗試訪問 http://localhost:8080/ruby.jpg 。如能顯示圖片,配置成功。
渲染W(wǎng)eb頁面
之前通過 @RestController 處理請求,返回的內(nèi)容為json對象。如果需要渲染 html 頁面,要如何實(shí)現(xiàn)呢?
模板引擎
在 Spring Boot 推薦的模板引擎下,我們可以很快的上手開發(fā)動態(tài)網(wǎng)站。
Spring Boot 提供了默認(rèn)配置的模板引擎主要有以下幾種:
Thymeleaf FreeMarker Groovy Mustache
Spring Boot建議使用這些模板引擎,避免使用JSP,若一定要使用JSP將無法實(shí)現(xiàn)Spring Boot的多種特性,具體可見后文:支持JSP的配置
當(dāng)你使用上述模板引擎中的任何一個(gè),它們默認(rèn)的模板配置路徑為: src/main/resources/templates 。當(dāng)然也可以修改這個(gè)路徑,具體如何修改,可在后續(xù)各模板引擎的配置屬性中查詢并修改。
Thymeleaf
Thymeleaf 是一個(gè) XML/XHTML/HTML5 模板引擎,可用于Web與非Web環(huán)境中的應(yīng)用開發(fā)。它是一個(gè)開源的Java庫,基于Apache License 2.0許可,由Daniel Fernández創(chuàng)建,該作者還是Java加密庫Jasypt的作者。
Thymeleaf提供了一個(gè)用于整合Spring MVC的可選模塊,在應(yīng)用開發(fā)中,你可以使用Thymeleaf來完全代替JSP或其他模板引擎,如FreeMarker等。Thymeleaf的主要目標(biāo)在于提供一種可被瀏覽器正確顯示的、格式良好的模板創(chuàng)建方式,因此也可以用作靜態(tài)建模。你可以使用它創(chuàng)建經(jīng)過驗(yàn)證的XML與HTML模板。相對于編寫邏輯或代碼,開發(fā)者只需將標(biāo)簽屬性添加到模板中即可。接下來,這些標(biāo)簽屬性就會在DOM(文檔對象模型)上執(zhí)行預(yù)先制定好的邏輯。
示例模板:
quanke.name Hello World
可以看到Thymeleaf主要以屬性的方式加入到html標(biāo)簽中,瀏覽器在解析html時(shí),當(dāng)檢查到?jīng)]有的屬性時(shí)候會忽略,所以Thymeleaf的模板可以通過瀏覽器直接打開展現(xiàn),這樣非常有利于前后端的分離。
在Spring Boot中使用Thymeleaf,只需要引入下面依賴,并在默認(rèn)的模板路徑src/main/resources/templates下編寫模板文件即可完成。
compile "org.springframework.boot:spring-boot-starter-thymeleaf:$spring_boot_version"
在完成配置之后,舉一個(gè)簡單的例子,在快速入門工程的基礎(chǔ)上,舉一個(gè)簡單的示例來通過Thymeleaf渲染一個(gè)頁面。
import org.springframework.stereotype.Controller import org.springframework.ui.ModelMap import org.springframework.web.bind.annotation.RequestMapping /** * Created by http://quanke.name on 2018/1/10. */ @Controller class HelloController { @RequestMapping("/") fun index(map: ModelMap): String { // / 加入一個(gè)屬性,用來在模板中讀取 map.addAttribute("host", "http://quanke.name") // return模板文件的名稱,對應(yīng)src/main/resources/templates/index.html return "index" } }
默認(rèn)在 src/main/resources/templates 目錄下增加 index.html 文件
quanke.name Hello World
增加使用 kotlin 語言實(shí)現(xiàn)的 Spring Boot 啟動方法:
import org.springframework.boot.SpringApplication import org.springframework.boot.autoconfigure.SpringBootApplication /** * Created by http://quanke.name on 2018/1/9. */ @SpringBootApplication class Application fun main(args: Array) { SpringApplication.run(Application::class.java, *args) }
如上頁面,直接打開html頁面展現(xiàn)Hello World,但是啟動程序后,訪問 http://localhost:8080/ ,則是展示Controller中host的值:http://quanke.name,做到了不破壞HTML自身內(nèi)容的數(shù)據(jù)邏輯分離。
更多 Thymeleaf 的頁面語法,還請?jiān)L問Thymeleaf的官方文檔查詢使用。
Thymeleaf的默認(rèn)參數(shù)配置
如有需要修改默認(rèn)配置的時(shí)候,只需復(fù)制下面要修改的屬性到 application.yml 中,并修改成需要的值,如修改模板文件的擴(kuò)展名,修改默認(rèn)的模板路徑等。
# Enable template caching. spring.thymeleaf.cache=true # Check that the templates location exists. spring.thymeleaf.check-template-location=true # Content-Type value. spring.thymeleaf.content-type=text/html # Enable MVC Thymeleaf view resolution. spring.thymeleaf.enabled=true # Template encoding. spring.thymeleaf.encoding=UTF-8 # Comma-separated list of view names that should be excluded from resolution. spring.thymeleaf.excluded-view-names= # Template mode to be applied to templates. See also StandardTemplateModeHandlers. spring.thymeleaf.mode=HTML5 # Prefix that gets prepended to view names when building a URL. spring.thymeleaf.prefix=classpath:/templates/ # Suffix that gets appended to view names when building a URL. spring.thymeleaf.suffix=.html spring.thymeleaf.template-resolver-order= # Order of the template resolver in the chain. spring.thymeleaf.view-names= # Comma-separated list of view names that can be resolved.
測試環(huán)境或者開發(fā)環(huán)境避免出現(xiàn)不可預(yù)期問題一般設(shè)置: spring.thymeleaf.cache=true
支持JSP的配置
Spring Boot并不建議使用,但如果一定要使用,可以參考此工程作為腳手架: JSP 支持
總的來說Kotlin 對于Spring Boot的支持非常好,只需要把Java語言的spring boot使用,翻譯成kotlin就可以。
感謝各位的閱讀!關(guān)于“Spring Boot與kotlin如何使用Thymeleaf模板引擎渲染web視圖”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!